Apache Solr建议仅在搜索词缺少最后一个字符时建议

时间:2017-11-11 07:02:50

标签: search solr

我对Broadleaf solr搜索有一个非常奇怪的问题,请看下面的屏幕截图  enter image description here

这里是我用错误拼写的术语“mesur”搜索然后solr搜索提供拼写修正结果但是看到结果所有结果似乎都缺少最后一个char。

现在看第二个屏幕截图 enter image description here

现在我已将“e”添加到搜索词及其“mesure”中,现在它没有提供任何结果,任何具有良好solr经验的人都可以帮助我解决这个问题,特别是为什么solr在建议中缺少最后一个角色? / p>

1 个答案:

答案 0 :(得分: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架构删除过滤器,现在工作正常