我是SolrCloud的新手 并且在学习模式..我想得到多个搜索查询的交集。 我们可以像多个结果集的内部联接一样来看待它。据我所知,这可以通过 - 1)数据源对之间的多个连接查询。我们甚至可以使用子查询。 2)我想到的更好的选择是编写自定义请求处理程序。此请求处理程序将对每个数据源进行搜索查询,并查找它们之间的交集。格式化响应并将其作为最终结果集返回。 我想知道在Solr中解决它的最佳方法是什么。我不知道如何在自定义请求处理程序中进行多个搜索查询。 谢谢
答案 0 :(得分:0)
我将在这里发布一个答案,因为这可能与我在使用Solr结果分组/字段折叠之前处理的案例非常相似
https://wiki.apache.org/solr/FieldCollapsing
在这种情况下我会做的是:
使用单核。不需要多个核心。
为每个数据源的每个不同文档生成新的唯一ID
使用您已有的ID作为“组ID”(因此我们可以知道相同的文档但来自不同的数据源基本上是同一组)。在这种情况下,这将是cust_id1,cust_id2等。
可能添加另一个字段以指定数据源名称。
在查询中,我将使用分组功能,通过说group = true& group.field = GroupId
那么,这样做会尝试按“组ID”对结果进行分组,默认情况下会为每个组获取一个文档。 (默认为1)但您可以将group.limit更改为其他数字。