solr.EdgeNGramFilterFactory返回不正确的结果

时间:2016-08-05 12:14:36

标签: solr

使用 solr-spec 6.1.0 lucene-spec 6.1.0

我有一个使用EdgeNGramFilterFactory的字段,我看到的结果不正确。

我正在查询标题“raza”并且它返回标题为“raza”的文档以及其中找到“r”“ra”“raz”的所有其他标题。

分析用户界面向我显示偏移未正确设置

在此处查看Analysis UI的屏幕截图

enter image description here

我看到“结束”是常数4,4,4,4。我认为应该是1,2,3,4

从下面的Schema.xml配置

<field name="full_name" type="text_prefix" indexed="true" stored="true" storeOffsetsWithPositions="true"/>
<fieldType name="text_prefix" class="solr.TextField" positionIncrementGap="100">
    <analyzer type="index">
        <tokenizer class="solr.StandardTokenizerFactory"/>
        <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt"/>
        <filter class="solr.LowerCaseFilterFactory"/>
        <filter class="solr.ASCIIFoldingFilterFactory"/>
        <filter class="solr.EnglishPossessiveFilterFactory"/>
        <charFilter class="solr.PatternReplaceCharFilterFactory" pattern="_" replacement=" "/>
        <filter class="solr.EdgeNGramFilterFactory" maxGramSize="50" minGramSize="1"/>
    </analyzer>
    <analyzer type="query">
            <tokenizer class="solr.StandardTokenizerFactory"/>
        <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt"/>
        <filter class="solr.LowerCaseFilterFactory"/>
        <filter class="solr.ASCIIFoldingFilterFactory"/>
        <filter class="solr.EnglishPossessiveFilterFactory"/>
        <charFilter class="solr.PatternReplaceCharFilterFactory" pattern="_" replacement=" "/>
    </analyzer>
</fieldType>

我使用旧版Solr和Lucene在我的其他环境中尝试了相同的架构,如下所示[ luceneMatchVersion =“4.3”]并且工作正常

<filter class="solr.EdgeNGramFilterFactory" maxGramSize="50" minGramSize="1" luceneMatchVersion="4.3"/>

但是使用最新的Solr 6.1.0,它不起作用。

有人可以帮我修复Solr 6.1.0

0 个答案:

没有答案