如何让Solr不在查询中索引常用单词?

时间:2015-03-02 19:17:14

标签: apache indexing solr

我是Solr的新工作,我的服务器中有一个正常运行的实例

我的问题是:

当我使用某些术语查询Solr时,它不返回结果,但是有一些项目具有该索引。我和一个正在使用这个Solr实例的开发人员进行了交谈,他记得一些关于“黑名单”或“空列表”或相关内容的东西,它们充当了查询的过滤器,它就像一个返回质量差的常用词汇列表结果查询,单词如: “a”,“the”,“for”,......

我想知道如何管理该列表以从中删除一个术语(或添加一个,编辑等)

1 个答案:

答案 0 :(得分:1)

听起来你在谈论停用词过滤器。如果您启用了禁用词过滤,则应在schema.xml

中的字段分析中看到与此类似的内容
<filter class="solr.StopFilterFactory" ignoreCase="true"
                 words="stopwords.txt" enablePositionIncrements="true" />

这引用了文件stopwords.txt,它是此文件的标准名称,但可能会使用不同的文件名,因此在您的服务器上可能会有所不同。此文件将包含在搜索期间应忽略的单词列表。您应该在索引的conf目录中找到此文件(与schema.xmlsolrconfig.xml相同的位置)。您可以编辑此文件,但为了获得最佳结果,您应该在执行此操作后重新索引记录。

或者,如果您不希望从搜索中过滤常用字词,则可以完全删除字段分析中对StopFilterFactory的引用。同样,您应该计划在执行此操作后重新编制索引。