2017-11-11 264 views
1

我有阔叶很奇怪的问题Solr的搜索,请参阅下面的屏幕截图 enter image description hereApache Solr实现建议,建议您只在搜索词已经丢失最后一个字符

这里是我使用错误的拼写搜索术语“mesur”,然后solr搜索提供拼写更正结果,但查看结果所有结果似乎都有最后一个字符缺失。

现在看到下面的第二截屏 enter image description here

现在我已经附加“E”的搜索字词和它的“MESURE”现在那么它不提供任何结果具有良好的Solr经验的任何一个帮助我特别是为什么solr在建议中失去了最后一个字符?

+0

请分享十有二的schema.xml和solrconfig.xml中的一部分/建议请求处理程序 – Mysterion

回答

0

我已经改变schema.xml中解决我的问题,我在与字段类型的问题,以前是作为跟随

<fieldType name="text_general_partial" class="solr.TextField"> 
     <analyzer type="index"> 
      <tokenizer class="solr.StandardTokenizerFactory" /> 

      <!-- Partial Word matcher --> 
      <filter class="solr.NGramFilterFactory" minGramSize="3" 
       maxGramSize="1000" /> 
      <filter class="solr.ReverseStringFilterFactory" /> 

      <filter class="solr.NGramFilterFactory" minGramSize="3" 
       maxGramSize="1000" /> 
      <filter class="solr.ReverseStringFilterFactory" /> 
      <filter class="solr.RemoveDuplicatesTokenFilterFactory"/> 

      <filter class="solr.LowerCaseFilterFactory" /> 
      <filter class="solr.TrimFilterFactory" /> 
      <filter class="solr.SnowballPorterFilterFactory" language="English" /> 
     </analyzer> 
     <analyzer type="query"> 
      <tokenizer class="solr.StandardTokenizerFactory" /> 
      <filter class="solr.WordDelimiterFilterFactory" 
       generateWordParts="1" generateNumberParts="1" catenateWords="0" 
       catenateNumbers="0" catenateAll="0" splitOnCaseChange="0" /> 

      <filter class="solr.LowerCaseFilterFactory" /> 
      <filter class="solr.TrimFilterFactory" /> 
      <filter class="solr.SnowballPorterFilterFactory" language="English" /> 
     </analyzer> 
    </fieldType> 

但我已经改为如下所示,现在工作正常

<fieldType name="text_general_partial" class="solr.TextField"> 
     <analyzer type="index"> 
      <tokenizer class="solr.StandardTokenizerFactory" /> 

      <!-- Partial Word matcher --> 
      <filter class="solr.NGramFilterFactory" minGramSize="3" 
       maxGramSize="1000" /> 
      <filter class="solr.ReverseStringFilterFactory" /> 

      <filter class="solr.NGramFilterFactory" minGramSize="3" 
       maxGramSize="1000" /> 
      <filter class="solr.ReverseStringFilterFactory" /> 
      <filter class="solr.RemoveDuplicatesTokenFilterFactory"/> 
      language="English" /> 
     </analyzer> 
     <analyzer type="query"> 
      <tokenizer class="solr.StandardTokenizerFactory" /> 
      <filter class="solr.WordDelimiterFilterFactory" 
       generateWordParts="1" generateNumberParts="1" catenateWords="0" 
       catenateNumbers="0" catenateAll="0" splitOnCaseChange="0" />language="English" /> 
     </analyzer> 
    </fieldType> 

去除过滤器按照XML架构和现在做工精细