【发布时间】:2015-02-26 22:06:14
【问题描述】:
给定以下一组值,我如何配置字段以返回部分单词匹配但也匹配整个搜索词的值?
价值观:
Texas State University
Stanford University
St. Johns College
期望的结果示例:
搜索词:sta
期望的结果:
Texas State University
Stanford University
搜索词:stan
期望的结果:
Stanford University
搜索词:st un
期望的结果:
Texas State University
Stanford University
这是我迄今为止尝试过的:
<fieldType name="text" class="solr.TextField" omitNorms="false">
<analyzer>
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StopFilterFactory" words="stopwords.txt"/>
<filter class="solr.StandardFilterFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.PorterStemFilterFactory"/>
<filter class="solr.EdgeNGramFilterFactory" minGramSize="2" maxGramSize="15" side="front"/>
</analyzer>
</fieldType>
我认为我的问题在于EdgeNGramFilterFactory。如上所示,第二次搜索stan 会返回所有三个显示的值,而不仅仅是Stanford。但是,如果没有 EdgeNGramFilterFactory,部分单词根本不匹配。
Solr 字段返回部分单词匹配但也匹配整个搜索词的值的正确配置是什么?
【问题讨论】: