Solr edismax通配符搜索找不到原始字符串

Mat*_*tej 4 solr edismax

我的Solr索引中有下一个内容: west indian cherry在类型text_en的字段中(参见下面的字段定义).

当我搜索cherr*匹配时找到.
还搜索cherri*文档中的匹配单词.
但是,搜索cherry*没有匹配.

我怀疑PorterStemFilterFactory这个,但我不明白为什么(查询分析器与索引分析器相同).


样本查询

/solr/select?defType=edismax&q=cherry*
Run Code Online (Sandbox Code Playgroud)

solrconfig.xml中

...
<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>
...
Run Code Online (Sandbox Code Playgroud)

现场分析

指数

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
Run Code Online (Sandbox Code Playgroud)

询问

org.apache.solr.analysis.StandardTokenizerFactory: cherry
org.apache.solr.analysis.LowerCaseFilterFactory: cherry
org.apache.solr.analysis.EnglishPossessiveFilterFactory: cherry
org.apache.solr.analysis.PorterStemFilterFactory: cherri
Run Code Online (Sandbox Code Playgroud)

Jay*_*dra 6

http://wiki.apache.org/solr/AnalyzersTokenizersTokenFilters#Analyzers提到 -

在通配符和模糊搜索上,不对搜索词执行文本分析.

因此搜索查询在查询期间不会进行任何分析.因此,索引的术语将与正在搜索的术语不同.

作为索引术语cherri,搜索cherry*不匹配任何文档.