我定义了字段类型 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创建的标记?
答案 0 :(得分:0)
keepword
那样设置的参数。
你能做什么
schema.xml
<copyField ... />
为该新字段提供数据该新字段可能包含您想要的任何字段类型。搜索时,请搜索dismax或edismax,以便在您拥有内容的所有字段中展开搜索输入。