如何让 Solr 不索引查询中的常用词?
Posted
技术标签:
【中文标题】如何让 Solr 不索引查询中的常用词?【英文标题】:How do I get Solr to not index common words in a query? 【发布时间】:2015-03-02 19:17:14 【问题描述】:我是 Solr 的新手,我的服务器中有一个正常运行的实例
我的问题是:
当我使用某些术语查询 Solr 时,它不会返回结果,但有些项目带有该术语的索引。我与一位正在使用此 Solr 实例的开发人员交谈,他记得一些关于“黑名单”或“空列表”或相关内容的内容,它们充当查询的过滤器,就像返回低质量的常见单词列表查询结果,例如: “a”、“the”、“for”、...
我想知道如何管理该列表以从中删除一个术语(或添加一个、编辑等)
【问题讨论】:
【参考方案1】:听起来您在谈论停用词过滤器。如果您启用了停用词过滤,您应该会在 schema.xml
中的字段分析中看到与此类似的内容
<filter class="solr.StopFilterFactory" ignoreCase="true"
words="stopwords.txt" enablePositionIncrements="true" />
这引用了文件stopwords.txt
,这是该文件的标准名称,但可以使用不同的文件名,因此在您的服务器上可能会有所不同。该文件将包含在搜索过程中应忽略的单词列表。您应该在您的索引的conf
目录中找到此文件(与schema.xml
和solrconfig.xml
相同的位置)。您可以编辑此文件,但为了获得最佳效果,您应该在这样做后重新索引您的记录。
或者,如果您不想从搜索中过滤常用词,您可以从字段分析中完全删除对StopFilterFactory
的引用。同样,您应该计划在这样做之后重新索引您的记录。
【讨论】:
以上是关于如何让 Solr 不索引查询中的常用词?的主要内容,如果未能解决你的问题,请参考以下文章