思考/狮身人面像:每列不同的词干

时间:2011-11-02 21:56:58

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1 sphinx thinking-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 个答案:

答案 0 :(得分:2)

从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