首页 > 解决方案 > Solr 6.3 将 rawquerystring 拆分为两个字母对

问题描述

我的 Solr 6.3.0 将 rawquerystring 解析为窗口的 2 字母对。

例如,当我搜索“source”时,Solr 会将其解析为 [“so”、“ou”、“ur”、“rc”、“ce”]。

  "debug":{
    "rawquerystring":"source",
    "querystring":"source",
    "parsedquery":"+text_all:so +text_all:ou +text_all:ur +text_all:rc +text_all:ce",
    "parsedquery_toString":"+text_all:so +text_all:ou +text_all:ur +text_all:rc +text_all:ce"

text_all 定义为

<field indexed="true" multiValued="true" name="text_all" omitNorms="false" omitPositions="false" omitTermFreqAndPositions="false" stored="false" termVectors="false" type="text_general" />

而 text_general 被定义为

   <fieldType name="text_general" class="solr.TextField" positionIncrementGap="100">
      <analyzer type="index">
         <tokenizer class="solr.NGramTokenizerFactory" minGramSize="2" />
         <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
         <filter class="solr.LowerCaseFilterFactory" />
         <filter class="solr.LowerCaseFilterFactory" />
      </analyzer>
      <analyzer type="query">
         <tokenizer class="solr.NGramTokenizerFactory" minGramSize="2" />
         <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
         <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true" />
         <filter class="solr.LowerCaseFilterFactory" />
      </analyzer>
   </fieldType>

有什么建议吗?

谢谢!

标签: solr

解决方案


这是因为 NGramTokenizerFactory


推荐阅读