【发布时间】:2026-02-19 01:55:02
【问题描述】:
我正在实施 SOLR 搜索。当我输入例如 Richard Chase 我得到 索引中的所有 Richards 和所有 Chase,如 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 John Chase 或 Richard Chase 先生
-
一方面说你想要 exact 匹配,然后接受“Richard John Chase”有点误导。 “理查德·蔡斯”!=“理查德·约翰·蔡斯”。对于 Solr 中的精确匹配,请参阅*.com/a/29105025/1389219
标签: solr