我的应用程序索引讨论线程。讨论中的每个条目都被索引为一个单独的Lucene文档,其中包含一个common_id字段,可用于将搜索命中分组到一个讨论中。
目前,当执行搜索时,如果一个帖子有3个条目,则返回3个单独的命中。尽管这是正确的,但从用户的角度来看,同一条目多次出现在搜索中。
有没有办法告诉lucene在返回它们之前通过common_id字段对搜索结果进行分组?
答案 0 :(得分:1)
我相信你所要求的是Field Collapsing,这是Solr的一个特色(我也相信Elasticsearch)。
如果你想自己动手,一种可行的方法是:
另一种方法是将所有系列成员的ID存储在每个成员文档中的字段中。
答案 1 :(得分:0)
Lucene没有任何内容可以根据字段折叠结果。您需要自己实现。
但是,他们最近在Solr中构建了这个功能。
答案 2 :(得分:0)
从版本3.2开始,lucene支持基于字段对搜索结果进行分组。 http://lucene.apache.org/core/4_1_0/grouping/org/apache/lucene/search/grouping/package-summary.html