我已将EdgeNgram实现到我的text
字段中,架构为
<fieldType name="text_general" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />
<filter class="solr.LowerCaseFilterFactory"/>
<!-- to do partial search -->
<filter class="solr.EdgeNGramFilterFactory" minGramSize="1" maxGramSize="50" side="front"/>
<filter class="solr.EdgeNGramFilterFactory" minGramSize="1" maxGramSize="50" side="back"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
和text
字段是
<field name="text" type="text_general" indexed="true" stored="false" multiValued="true"/>
每个字段都会复制到此text
字段。
现在,问题是在我添加EdgeNGramFilterFactoty
q="This Organization"
给我1
结果之前,但部分搜索q=thi
没有给我任何结果,
但添加了EdgeNGramFilterFactoty
q=thi
给了我一个结果,但q="This Organization"
(使用NGram的精确搜索)停止工作 - 没有结果。有没有办法让两个工作?