1

我们有一个简单的 solr 配置,就像这样https://gist.github.com/118d17e93267123f4870

据此,我正在用 id索引标题“朗达伯恩的秘密”或“圣经中的吸引力法则” 。

然后我去 Solr 分析工具看看它是如何在这个字段中被索引的。因此,如果具有给定值的字段类型返回类似的内容,则索引分析;

secret rhonda byrne law attraction bible

只是为了确保,我正在查询该标题的 id 字段以查看它是否存在。积极的。

但是当我用分析工具结果查询这个索引时,我没有得到任何结果。我的查询是这样的;

select?qf=title_stm&q="Secret+Rhonda+Byrne+Law+Attraction+Bible"&fl=id,title&defType=dismax

正如评论中给出的,该查询的调试输出在这里; https://gist.github.com/9b88fd6b5f043c90d539

4

1 回答 1

2

问题在于: -

<filter class="solr.StopFilterFactory"
        ignoreCase="true"
        words="stopwords.txt"
        enablePositionIncrements="true"
        />

每当遇到停用词时,enablePositionIncrements 都会增加位置。因此,当您进行精确的短语匹配时,这将不匹配,因为索引标题的位置不相邻。

在这里阅读更多内容。

您应该禁用位置增量才能进行短语匹配。

<filter class="solr.StopFilterFactory"
        ignoreCase="true"
        words="stopwords.txt"
        enablePositionIncrements="false"
        />
于 2012-09-13T13:43:54.900 回答