使用ReversedWildcardFilterFactory和KeywordTokenizerFactory查询以。结尾的单词

时间:2012-11-14 15:18:02

标签: solr wildcard

我在我的Solr架构(.xml)中声明了“text_general_rev”字段类型,如下所示:

<fieldType
    name="text_general_rev"
    class="solr.TextField"
    positionIncrementGap="100">
    <analyzer type="index">
       <tokenizer class="solr.KeywordTokenizerFactory" />
       <filter
            class="solr.ReversedWildcardFilterFactory"
            withOriginal="true"
            maxPosAsterisk="2"
            maxPosQuestion="2"
            maxFractionAsterisk="1.0" />
        <filter class="solr.LowerCaseFilterFactory" />                
    </analyzer>
    <analyzer type="query">
        <tokenizer class="solr.KeywordTokenizerFactory" />
        <filter class="solr.LowerCaseFilterFactory" />
    </analyzer>
</fieldType>

我有2个Solr文档,其中“artist”字段设置为“text_general_rev”,如下所示:

Document1艺术家是“Jimmy Jones Tim Coco Mimi”

Document2艺术家是“Jones Jimmy Tim Bobo Mimi”

如果我搜索“从某事开始”的搜索,他们会按照我的意愿工作:

+artist:(J*)返回文档1和2

+artist:(Jim*)返回文档1

+artist:(Jimmy Jo*)返回文档1

另一方面,类似的查询,但类型“以某些东西的结尾不起作用:

+artist:(*Mimi)返回文档1和2(可以)

+artist:(*Coco Mimi)返回0结果(这不行)

+artist:("*Coco Mimi")返回0结果(这不行)

+artist:(*co Mimi)返回0结果(这不行)

+artist:("*co Mimi")返回0结果(这不行)

我的问题是为什么会发生这种情况?这是正常的,如果是这样,我错过了什么?我已经为maxFractionAsterisk尝试了多个值(比如0,0.5,1等等。这是ReversedWildcardFilterFactory唯一的配置参数,我还不完全理解。)

0 个答案:

没有答案