0

我正在寻找的是一种可以“部分折叠”我的结果的操作,以便对具有特定字段的文档进行分组,删除可能被视为接近重复的内容,但所有缺少此字段的文档都不受字段折叠的影响。

(具体来说,有问题的文档是讨论论坛中的各个帖子,而这些帖子又按主题组织。由于论坛每页显示一个完整主题,因此就用户而言,同一主题中的多次点击本质上是重复的,并且随着线程变长,如果用户坚持主题,这是不可避免的。但是,还有许多其他类型的文档,这种折叠根本没有任何意义。)

使用 Solr 3.5,我得到的最接近的是

...&group=true&group.main=true&group.field=threadid&group.limit=3

但似乎 Solr 将“缺失”视为一个值,并将其他所有内容折叠为 3 个命中 - 我希望它将缺失值视为“唯一”。

可以这样做还是我应该考虑修改架构设计?

4

1 回答 1

1

我认为这不能直接使用 solr 中的现有查询参数。

您有两个可能可行的选择:

  • 确保每个帖子都有一个threadid这样的一次性帖子有一个唯一的 threadid 与“正常”不冲突threadid。在此字段上分组时,这些帖子将显示在自己的组中。

  • 运行两个查询,一个启用了分组,但一个fq参数过滤掉没有threadid(例如fq=threadid:[* TO *])的帖子,然后另一个查询仅用于非线程帖子的反向fqfq=-threadid:[* TO *]),然后将这些结果合并到您自己的代码中。

于 2012-06-08T13:23:58.550 回答