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