我的Solr索引中有下一个内容:
在west indian cherry
类型的字段中text_en
(请参阅下面的字段定义)。
当我使用cherr*
搜索时,找到了匹配
同时搜索cherri*
匹配文档中的单词
但搜索cherry*
不匹配。
我怀疑PorterStemFilterFactory
为此,但我不明白为什么(查询分析器与索引分析器相同)。
/solr/select?defType=edismax&q=cherry*
...
<fieldType name="text_en" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.EnglishPossessiveFilterFactory"/>
<filter class="solr.PorterStemFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.EnglishPossessiveFilterFactory"/>
<filter class="solr.PorterStemFilterFactory"/>
</analyzer>
</fieldType>
...
org.apache.solr.analysis.StandardTokenizerFactory: cherry
org.apache.solr.analysis.LowerCaseFilterFactory: cherry
org.apache.solr.analysis.EnglishPossessiveFilterFactory: cherry
org.apache.solr.analysis.PorterStemFilterFactory: cherri <-- note the change from cherry to cherri
org.apache.solr.analysis.StandardTokenizerFactory: cherry
org.apache.solr.analysis.LowerCaseFilterFactory: cherry
org.apache.solr.analysis.EnglishPossessiveFilterFactory: cherry
org.apache.solr.analysis.PorterStemFilterFactory: cherri
答案 0 :(得分:6)
http://wiki.apache.org/solr/AnalyzersTokenizersTokenFilters#Analyzers提及 -
在通配符和模糊搜索中,不会对其执行文本分析 搜索词。
因此搜索查询在查询期间不会进行任何分析。 因此,索引的术语与正在搜索的术语不同。
由于索引字词为cherri
,因此cherry*
的搜索与任何文档都不匹配。