2012-06-08 146 views
0

我正在寻找的是一个操作,它会“部分折叠”我的结果,以便某个字段的文档分组,删除可能被视为接近重复的内容,但缺少该字段的所有文档不受影响该领域崩溃。 (具体来说,所讨论的文档是讨论论坛中的单个帖子,而论坛又是以线程组织的,由于论坛每页显示一个完整的线程,因此同一线程中的多个匹配实质上是重复的如果用户坚持这个主题,这是非常不可避免的,然而,还有很多其他类型的文档,这些文档的折叠没有任何意义。)Solr分组:我可以改变缺失字段的行为吗?

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

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

但似乎Solr正在治疗“miss ing“作为价值,并将所有其他内容压缩为3次 - 我希望它将缺失值视为”独特“。

这样做还是应该考虑修改模式设计?

回答

1

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

你有可能工作两个选项:

  • 确保每个岗位都有一个threadid,使得一次性的帖子有一个独特的线程ID不与“正常” threadid冲突论。在此字段上分组时,这些帖子将显示在他们自己的组中。

  • 运行两个查询,一个与所述分组启用,但一个fq参数过滤掉帖子未经threadid(例如fq=threadid:[* TO *]),然后另一个查询仅具有逆fqfq=-threadid:[* TO *])非螺纹柱,然后将这些结果合并到您自己的代码中。

+0

听起来很合理。我将在索引时将我的'uniqueKey'的值复制到'threadid',并评估性能和可维护性。另一件好事是'threadid'可以重用于其他类型的需要删除/减少重复副本的文档。不过,重新命名它可能很有意义。谢谢! –

相关问题