如何使用 NGramTokenizerFactory 或 NGramFilterFactory?

发布于 2024-10-11 10:45:59 字数 328 浏览 7 评论 0原文

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

我谷歌发现 NGramFilterFactory 可以帮助我。但是当我应用这个过滤器工厂时,我发现结果是“w,h,e,...,wh,..”,它按字符而不是按标记词分割句子。

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

谢谢!

Recently, I am studying how to store and index using Solr. I want to do facet.prefix search. With whitespace tokenizer, "Where are you" will be splited into three words and indexed. If I search facet.prefix="where are", no result will be returned.

I google and found NGramFilterFactory can help me. But when I apply this filter factory, I found the result is "w, h, e, ..., wh, ..", which split the sentence by character, not by token word.

I use the parameters maxGramSize and minGramSize, set to 1 and 3. Does the NGramFilterFactory work right? Should I add some other parameters? Is there some other filter factories which can help me?

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

冷夜 2024-10-18 10:45:59

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

对于 ngramtokenizer 看看这个

Facets should only be applied to non tokenized fields like strings. if you want that results will be displayed for "what are" use no tokenizer at all for that field (or a copyField directive). I guess that you want to use facet.prefix for autocompletion. you can do this, look here.

for the ngramtokenizer check this out.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文