添加词干到我的schema.xml文件不起作用

时间:2011-03-16 12:53:37

标签: ruby-on-rails solr sunspot sunspot-rails

我正在尝试在Websolr上设置Heroku app。我正在关注instructions in the Heroku docs。我的初始设置工作正常。

在开发中:

ruby-1.9.2-p0 > Note.search { keywords 'grit' }.results.length
 => 3

我正在尝试添加词干。我将schema.xml文件的相关部分更新为:

<fieldType name="text" class="solr.TextField" omitNorms="false">

  <analyzer type="query">
    <tokenizer class="solr.StandardTokenizerFactory"/>
    <filter class="solr.StandardFilterFactory"/>
    <filter class="solr.LowerCaseFilterFactory"/>
    <filter class="solr.PorterStemFilterFactory"/>
  </analyzer>
  <analyzer type="index">
    <tokenizer class="solr.StandardTokenizerFactory"/>
    <filter class="solr.StandardFilterFactory"/>
    <filter class="solr.LowerCaseFilterFactory"/>
    <filter class="solr.PorterStemFilterFactory"/>
  </analyzer>

</fieldType>

然后重新编制索引:

$ rake sunspot:reindex

但它似乎根本不起作用:

ruby-1.9.2-p0 > Note.search { keywords 'gri' }.results.length
 => 0

我做错了什么?

1 个答案:

答案 0 :(得分:2)

我在这里有两个想法:

首先,您没有提及在更改schema.xml后是否重新启动Solr。那么:你重新启动Solr以便你的更改生效吗? :)

接下来,我想知道术语grit是否有资格在Porter词干算法下删除t。您需要仔细阅读PorterStemmer algorithm才能确定。但您也可以尝试一些更明显的例子(例如,writingwrite)。