在索引的lucene文档的子集中获得最常用的术语

时间:2013-09-16 21:30:44

标签: solr lucene tag-cloud word-cloud

让我们假设以下场景。

  • Lucene文件:ArticleDocument

    字段:{Id,text,publisherId}

  • 发布商可以发布多篇文章。

问题

我想为每个 发布商ID 构建单词云(最常见的单词,带状疱疹)。

在我调查之后,我可以找到方法来获得整个索引或文档的最常用术语,但不能找到文档的子集。我找到了similar question但是这是Lucene 2 .x,我希望在最近的Lucene中存在一种有效的方法。

请您指导我在 Lucene 4.x (首选)或3.x(最新版本3)中执行此操作。

请注意,我无法为每个发布者提供一个文档,其中所有文章都附加到字段中。

那是因为我希望云中的这些词可以搜索相应的文章(由同一个发布者ID)作为结果。

我不确定维护两种类型的lucene文档(文章和出版商)在维护和性能方面是否是一个好主意。

1 个答案:

答案 0 :(得分:4)

使用Solr 4.X版本中提供的Pivot Faceting。透视刻面允许您在父刻面的结果内进行刻面。

使用Shingle Filter Factory.

在索引时为“文本”字段生成带标签的标记

对于分面,在查询中添加facet=true&facet.pivot=publisherid,text个参数。

示例查询:

http://localhost:8983/solr/collection1/select?q=*:*&wt=json&indent=true&facet=true&facet.pivot=publisherid,text

查询将为每个“publisherid”返回频繁的带状疱疹/单词频率。