我正在改写我之前的问题。希望有人能够提供帮助。
我目前有一个仅进行完全匹配的 solr 实现。
因此,“THE TEST”的搜索词组将仅匹配“THE TEST”
但是,我也实现了模式替换过滤器。
因此“TOM AND JERRY”的搜索词组将与“TOM & JERRY”匹配。
现在,我们要添加停用词过滤器。我们想在索引期间删除“THE”。
因此,“TEST”的搜索短语将与“THE TEST”匹配。
我将分词器从 KeywordTokenizerFactory 更改为 Whitespacetokenizerfactory。然而,搜索结果炸了。
虽然“TEST”现在与“THE TEST”匹配。它还与“EVEL TEST”等相匹配。
有没有办法避免测试短语与等级测试等匹配?
非常感谢您的帮助。谢谢。
以下是我当前的索引分析器
<charFilter class="solr.PatternReplaceCharFilterFactory" pattern="(&)" replacement="AND"/>
<charFilter class="solr.PatternReplaceCharFilterFactory" pattern="(@)" replacement="AT"/>
<charFilter class="solr.PatternReplaceCharFilterFactory" pattern="(['_\(\)])" replacement=" "/>
<tokenizer class="solr.KeywordTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.PatternReplaceFilterFactory" pattern="([~!#$%*+`?/|,.;:}{<>"'\^\=\]\[\\\-])" replacement="" replace="all"/>
<filter class="solr.StopFilterFactory" words="stopwords.txt" ignoreCase="true" enablePositionIncrements="false"/>