我使用标准的Solr ngram字段定义--
<fieldType name="ngram" class="solr.TextField" positionIncrementGap="100" stored="false" multiValued="true">
<analyzer type="index">
<tokenizer class="solr.StandardTokenizerFactory"/>
<!-- potentially word delimiter, synonym filter, stop words, NOT stemming -->
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.NGramFilterFactory" minGramSize="2" maxGramSize="15"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory"/>
<!-- potentially word delimiter, synonym filter, stop words, NOT stemming -->
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
<field name="item" type="text" indexed="true" stored="true"/>
<field name="item_ngram" type="ngram" indexed="true" stored="true"/>现在"item:ipad AND item:2“可以找到"iPad 2",但是"item_ngram:ipad和item_ngram:2”不能。
有什么想法吗?
发布于 2012-01-05 18:47:40
N-gram的最小长度为2 (minGramSize="2")。所以item_ngram:2不会匹配任何东西。将其减少到1,您将得到匹配结果。
https://stackoverflow.com/questions/8740455
复制相似问题