gpt4 book ai didi

solr - 在SOLR搜索上执行完全匹配

转载 作者:行者123 更新时间:2023-12-04 10:04:26 24 4
gpt4 key购买 nike

我正在实现SOLR搜索。当我输入例如Richard Chase时,我得到
所有索引中的Richards和所有Chases,例如Johnny Chase等。实际上,我只想返回所有与Richard和Chase都匹配的名称。

我的配置设置是

<fieldType name="text_general" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />
<!-- in this example, we will only use synonyms at query time
<filter class="solr.SynonymFilterFactory" synonyms="index_synonyms.txt" ignoreCase="true" expand="false"/>
-->
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>



和我的查询搜索文本字段

文字:理查德·蔡斯(Richard Chase)

有任何想法我在做什么错吗?

最佳答案

您正在使用StandardTokenizerFactory,它遵循Word Boundary rules

这意味着您的单词会在空格上分开。

如果您想要真正的完全匹配,即
Richard Chase返回仅包含Richard Chase的文档,那么您应该KeywordTokenizerFactory

但是正如您提到的,您只需要 Richard John Chase 而不是 Johnny Chase ,它告诉我您想要匹配Richard Chase。

您可以搜索Richard AND Chase或将schema.xml中的默认运算符更改为AND而不是OR。请注意,此设置是全局的。

关于solr - 在SOLR搜索上执行完全匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18224527/

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