我需要找到一个给定单词后最常用的单词。对于示例集合,
这里,单词A后面最常用的单词是B. 我怎样才能在solr中找到它?
答案 0 :(得分:2)
创建一个以ShingleFilterFactory作为其过滤器之一的字段。这将为索引字段时生成每个单词的标记序列,以便A B C
被编入索引为A B
和B C
。您将需要使用WhitespaceTokenizer或类似的字段。
请求搜索field:A\ *
(意味着以A
开头的所有内容)作为查询,并为该字段添加构面。
facet=true&facet.field=field&facet.limit=10&facet.sort=count
将为您提供十个最常用的以A
开头的序列。
ShingleFilterFactory默认生成每个瓦片中有两个标记的带状疱疹,但您可以通过更改minShingleSize
和maxShingleSize
来调整此值。