Apache Solr搜索输入的不同文本组合。

时间:2016-02-16 03:56:41

标签: apache solr

我是这个Apache Solr的新手。我想针对输入的不同文本组合进行搜索。例如,如果文字是“你好”。 ,它应该返回有hello,llo,hel,ollhe,he等的记录。这可能与solr一起吗?如果是这样,我们怎么做到这一点?请帮帮我。

2 个答案:

答案 0 :(得分:0)

这在solr中是可能的。您可以在fieldType中使用EdgeNGramFilterFactory。这是它的例子。

这里的单词hello将包含像他,hel,hell和hello这样的标记

<fieldType name="text" class="solr.TextField" positionIncrementGap="100">
    <analyzer type="index">
        <tokenizer class="solr.KeywordTokenizerFactory"/>
        <filter class="solr.EdgeNGramFilterFactory" minGramSize="2" maxGramSize="15"/>
    </analyzer>
    <analyzer type="query">
        <tokenizer class="solr.KeywordTokenizerFactory"/>
    </analyzer>
</fieldType>

或者您可以尝试使用NGramTokenizerFactory代替EdgeNGramFilterFactory

<tokenizer class="solr.NGramTokenizerFactory" minGramSize="2" maxGramSize="10"/>

这将给出类似

的输出

对于你好,它会生成像

这样的标记

他,嗨,地狱,你好,el,ell等......

答案 1 :(得分:0)

chars