我可以将全文作为索引与NGramFilterFactory一起创建

时间:2014-04-22 06:40:24

标签: solr full-text-search solr4 n-gram

我定义了字段类型 text_ngram

<fieldType name="text_ngram" class="solr.TextField" positionIncrementGap="100">
    <analyzer type="index">
        <tokenizer class="solr.KeywordTokenizerFactory"/>
        <filter class="solr.LowerCaseFilterFactory"/>
        <filter class="solr.NGramFilterFactory" minGramSize="3" maxGramSize="15"/>
    </analyzer>
    <analyzer type="query">
        <tokenizer class="solr.KeywordTokenizerFactory"/>
        <filter class="solr.LowerCaseFilterFactory"/>
    </analyzer>
</fieldType>

我知道NGramFilterFactory是如何工作的。假设我们有一个文字Solr search in Stackoverflow。现在根据字段定义,在小写整个文本之后,它将开始创建像sol,olr,lr ,r s, se,....这样的索引。但它不会将整个文本保留为令牌或为其创建索引。

我的问题是......

有没有办法为整个字符串创建索引以及由NGramFilterFactory创建的标记?

1 个答案:

答案 0 :(得分:0)

不,你不能。查看the JavaDoc of the NGramFilterFactory,没有像keepword那样设置的参数。

你能做什么

该新字段可能包含您想要的任何字段类型。搜索时,请搜索dismax或edismax,以便在您拥有内容的所有字段中展开搜索输入。