【问题标题】:Rails Sunspot Solr search is not working when there is less than 3 chars当少于 3 个字符时,Rails Sunspot Solr 搜索不起作用
【发布时间】:2013-02-10 13:14:01
【问题描述】:

当我搜索“啤酒”时,我得到了结果,但是当我搜索“蜜蜂”时,我没有得到任何结果。我无法搜索任何短于 4 个字符的单词。有没有办法让这成为可能?!

【问题讨论】:

    标签: sunspot-rails sunspot-solr


    【解决方案1】:

    检查您的 SOLR 配置 conf/schema.xml 并根据您的需求配置设置。更改后重建索引并重试。

    可能就是这部分,但你必须“玩”设置。

    试试这个配置作为例子:

    <fieldType name="text" class="solr.TextField" omitNorms="false">
    
      <analyzer type="index">
              <tokenizer class="solr.WhitespaceTokenizerFactory"/>
              <filter class="solr.PhoneticFilterFactory" encoder="DoubleMetaphone" inject="true"/>
    
              <filter class="solr.WordDelimiterFilterFactory"
                      generateWordParts="1"
                      generateNumberParts="0"
                      catenateWords="1"
                      catenateNumbers="1"
                      catenateAll="1"
                      splitOnNumerics="0"
                      splitOnCaseChange="1"
                      preserveOriginal="1" />
              <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
              <filter class="solr.StopFilterFactory"
                      ignoreCase="true"
                      words="stopwords.txt"
                      enablePositionIncrements="true" />
              <filter class="solr.LowerCaseFilterFactory"/>
              <filter class="solr.SnowballPorterFilterFactory" language="German2" protected="protwords.txt"/>
              <filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
              <filter class="solr.NGramFilterFactory" minGramSize="1" maxGramSize="42" /> 
      </analyzer>
      <analyzer type="query">
              <tokenizer class="solr.WhitespaceTokenizerFactory"/>
              <filter class="solr.StopFilterFactory"
                      ignoreCase="true"
                      words="stopwords.txt"
                      enablePositionIncrements="true" />
              <filter class="solr.LowerCaseFilterFactory"/>
              <filter class="solr.SnowballPorterFilterFactory" language="German2" protected="protwords.txt"/>
              <filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
      </analyzer>
    
    </fieldType>
    

    【讨论】:

    • 任何示例如何更改 conf/schema.xml ?我应该改变什么?!我试过&lt;analyzer type="index"&gt; &lt;tokenizer class="solr.StandardTokenizerFactory"/&gt; &lt;filter class="solr.StandardFilterFactory"/&gt; &lt;filter class="solr.LowerCaseFilterFactory"/&gt; &lt;filter class="solr.NGramFilterFactory" minGramSize="2" maxGramSize="30" /&gt; &lt;/analyzer&gt; &lt;analyzer type="query"&gt; &lt;filter class="solr.StandardTokenizerFactory" /&gt; &lt;filter class="solr.StandardFilterFactory" /&gt; &lt;filter class="solr.LowerCaseFilterFactory" /&gt; &lt;/analyzer&gt; ,但没用
    • 我为该部分添加了一个完整的示例,修改您的配置,重建索引并尝试。
    猜你喜欢
    • 1970-01-01
    • 2015-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多