Solr中的Edgengram不保留小于minGramSize的单词

时间:2018-11-22 06:32:34

标签: solr

对于我的网站,我正在使用solr作为预输入解决方案。我正在使用以下fieldtype将数据存储在将在其中运行typeahead的字段中:

<fieldType name="text_suggest" class="solr.TextField" positionIncrementGap="100">
    <analyzer type="index">
      <tokenizer class="solr.WhitespaceTokenizerFactory"/>
      <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt"/>
      <filter class="solr.LowerCaseFilterFactory"/>
      <filter class="solr.EdgeNGramFilterFactory" maxGramSize="8" minGramSize="2"/>
    </analyzer>
    <analyzer type="query">
      <tokenizer class="solr.WhitespaceTokenizerFactory"/>
      <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt"/>
      <filter class="solr.LowerCaseFilterFactory"/>
    </analyzer>
  </fieldType>

但是,上述字段类型的问题在于,它不保留任何小于2的单词。

说,我要搜索“ iphone 5”。因此,如果我键入“ iph”,它可以正常工作,但是当我键入“ iphone 5”时,我没有任何结果。可以理解的是,我先进行标记,然后再使用edge ngram,所以对于2个字母中的最小值,“ 5”将被忽略。我也可以保留一个字母单词吗?

我该如何解决?

0 个答案:

没有答案