Solr分组:我可以改变丢失字段的行为吗?

时间:2012-06-08 12:30:21

标签: search solr

我正在寻找的是一种“部分崩溃”我的搜索结果的操作,以便 某个字段的文档被分组,删除可能被视为接近重复的文档,但是所有文档缺少此字段不受字段折叠的影响。

(具体来说,有问题的文档是讨论论坛中的个别帖子,而后者又以线程形式组织。由于论坛每页显示一个完整的帖子,因此同一个帖子中的多个点击基本上与用户重复关注并且随着线程的增长,如果用户坚持主题,这是不可避免的。但是,还有许多其他类型的文档,这种崩溃根本没有任何意义。)

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

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

但似乎Solr将“缺失”视为一种价值并将其他所有内容折叠为3次点击 - 我希望将缺失值视为“独特”。

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

1 个答案:

答案 0 :(得分:1)

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

您有两种选择可能有效:

  • 确保每个帖子都有threadid,以便一次性帖子具有唯一的标题,该标签与“普通”threadid不冲突。在此字段上进行分组时,这些帖子将显示在他们自己的组中。

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