Мышление / Сфинкс: разные исходные данные для каждого столбца

#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