如何让 Solr 不为查询中的常用词编制索引?

How do I get Solr to not index common words in a query?

我刚开始使用 Solr,我的服务器中有一个实例 运行

我的问题是:

当我用某些术语查询 Solr 时,它没有 return 结果,但有索引了该术语的项目。我和一位正在使用这个 Solr 实例的开发人员交谈过,他记得一些关于 "blacklist"、或 "empty list" 或相关的东西,它们充当查询的过滤器,就像一个常用单词列表return 查询结果质量差,例如: "a"、"the"、"for"、...

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

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

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

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

或者,如果您不希望从搜索中过滤常用词,则可以从您的字段分析中完全删除对 StopFilterFactory 的引用。同样,您应该计划在这样做之后重新索引您的记录。