具有精确搜索的SOLR EdgeNGramFilterFactory

时间:2014-09-19 10:11:42

标签: search solr lucene exact-match

我已将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的精确搜索)停止工作 - 没有结果。有没有办法让两个工作?

0 个答案:

没有答案