2

让我们假设以下场景。

  • Lucene 文档:ArticleDocument

    字段:{Id, text, publisherId}

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

问题

我想为每个Publisher Id构建词云(最常见的词,带状疱疹) 。

经过调查,我可以找到方法来获取整个索引或文档但不是文档子集的最常用术语。我发现了一个类似的问题,但那是 Lucene 2.x,我希望在最近的 Lucene 中存在一种有效的方法。

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

请注意,我不能让每个 Publisher 都成为一个将所有文章都附加到一个字段的文档。

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

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

4

1 回答 1

5

使用 Solr 4.X 版本中提供的 Pivot Faceting。枢轴分面允许您在父分面的结果中进行分面。

使用Shingle Filter Factory在索引时为“文本”字段生成 Shingled 令牌。

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

示例查询:

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

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

于 2013-09-17T06:33:59.910 回答