Мышление / Сфинкс: разные - PullRequest
1 голос
/ 03 ноября 2011

Например, у меня есть таблица, которая содержит столбцы:

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 Ответ

2 голосов
/ 03 ноября 2011

Морфологии / основы являются основанными на индексах настройками 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
...