#ruby-on-rails #ruby-on-rails-3 #ruby-on-rails-3.1 #sphinx #thinking-sphinx
#ruby-on-rails #ruby-on-rails-3 #ruby-on-rails-3.1 #sphinx #мышление-сфинкс
Вопрос:
Например, у меня есть таблица, которая содержит столбцы:
english_description
french_description
italian_description
При использовании ThinkingSphinx я могу указать, какой конечный элемент использовать следующим config/sphinx.yml
образом:
development:
morphology: stem_en
но при этом все столбцы будут проходить через английский конечный элемент. Есть ли способ указать исходные данные для каждого столбца? Что-то вроде:
development:
morphology:
english_description: stem_en
french_description: libstemmer_fr
italian_description: libstemmer_it
...
Или любой другой способ добиться того же?
Ответ №1:
Морфологии / основы — это настройка на основе индексов с точки зрения Sphinx, поэтому вам понадобятся отдельные индексы для каждого языка. Для каждого из них убедитесь, что у вас одинаковые атрибуты, иначе Sphinx будет жаловаться (или, по крайней мере, будет менее надежным). Обратите внимание на явные имена индексов ниже:
define_index('model_en') do
indexes english_description
set_property :morphology => 'stem_en'
end
define_index('model_fr') do
indexes french_description
set_property :morphology => 'libstemmer_fr'
end
# etc