solr - 获取索引 lucene 文档子集中最常用的术语

标签 solr lucene tag-cloud word-cloud

让我们假设以下场景。

  • Lucene 文档:ArticleDocument

    字段:{Id、文本、publisherId}

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

问题

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

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

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

请注意,我无法为每个发布者制作一个文档,并将所有文章附加到一个字段中。

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

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

最佳答案

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

使用Shingle Filter Factory.在索引时为“文本”字段生成Shingled token

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

示例查询:

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

查询将返回每个“publisherid”的频繁出现频率的木瓦/单词。

关于solr - 获取索引 lucene 文档子集中最常用的术语,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18837655/

相关文章:

tomcat - 对于 Solr 安装,Servlet Container 的优点和缺点是什么?

java - 在索引中使用具有 20 多个 M 项的 Solr 时,应该为 Tomcat 上的 Java 分配多少内存?

solr - 如何修复Java RuntimeException:找不到资源'solrconfig.xml'?

database-design - 用于标记、云和搜索的最佳数据架构(如 StackOverflow)?

twitter - Twitter 热点话题提取

带有 IBM Cognos 的 JavaScript 标签云 - IE 为空或不是对象

java - 在 Solr 3.3.0 中搜索图像

Solr 多语言搜索

elasticsearch - Kibana脚本字段中的Groovy脚本

sql - lucene vs sql 结果评分