如何使用NGramTokenizerFactory或NGramFilterFactory?

use*_*485 5 lucene solr tokenize

最近,我正在研究如何使用Solr进行存储和索引.我想做facet.prefix搜索.使用空格标记器,"你在哪里"将被分成三个单词并编入索引.如果我搜索facet.prefix ="where are",则不会返回任何结果.

我google并发现NGramFilterFactory可以帮助我.但是当我应用这个过滤器工厂时,我发现结果是"w,h,e,...,wh,..",它逐字逐句地分割,而不是通过标记字.

我使用参数maxGramSize和minGramSize,设置为1和3. NGramFilterFactory是否正常工作?我应该添加一些其他参数吗?还有其他一些过滤工厂可以帮助我吗?

谢谢!

Kar*_*ell 1

Facet 只能应用于非标记化字段,例如字符串。如果您希望显示“是什么”的结果,则对该字段(或 copyField 指令)根本不使用标记器。我猜您想使用facet.prefix 进行自动补全。你可以做到这一点,看这里

对于 ngramtokenizer,请检查一下