gpt4 book ai didi

Solr 查询 : stop words, OR 和 AND 怪异

转载 作者:行者123 更新时间:2023-12-04 16:00:32 27 4
gpt4 key购买 nike

我们将 Solr 3.5 与具有以下字段声明的架构一起使用:

<fieldType name="fieldN" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.WordDelimiterFilterFactory"
generateWordParts="0" generateNumberParts="0" catenateWords="0" catenateNumbers="0"
catenateAll="0" splitOnCaseChange="1" splitOnNumerics="0" preserveOriginal="1"/>
<filter class="solr.LengthFilterFactory" min="2" max="256"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.StopFilterFactory"
ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true"
/>
<filter class="solr.PorterStemFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.LengthFilterFactory" min="2" max="256"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.StopFilterFactory"
ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true"
/>
<filter class="solr.PorterStemFilterFactory"/>
</analyzer>
</fieldType>

当我们发送这样的查询时:
field1:"term1"

Solr 返回结果。

当我们运行这个查询时,我们仍然得到结果:
field1:"term1" AND (field2:term2 OR field3:term2)

term2 是停用词,term1 是常规词。

但是当我们发送这样的查询时:
field1:"term1" AND (field2:term2 OR field3:term2 OR field4:term2)

没有任何返回。

我们还注意到,当我们执行以下操作时:
(field1:"term1" AND (field2:term2 OR field3:term2)) OR (field1:"term1" AND field4:term2)

也可以,但因为真正的查询应该在大约 200 个字段中搜索一个词,所以这个选项不太受欢迎。

谢谢。

最佳答案

我猜你的“怪异”更多地与你的 solrconfig 规则有关,而不是与停用词的查询有关。我在子查询中遇到过类似的停用词查询问题,它最终成为我的 Dismax 搜索处理程序中的最小匹配规则。

看看你的 solrconfig.xml并寻找 requestHandler您的搜索正在使用。你应该有一个 "mm" (最小匹配)字符串声明。不管你的目标是什么,试着调整你的规则,使它们的限制更少或更多。

祝你好运!

关于Solr 查询 : stop words, OR 和 AND 怪异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10013721/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com