在子查询中使用solr facet pivot字段

时间:2016-01-06 00:23:18

标签: solr faceted-search

我有一组类似于父子关系的文档,除了它们没有被编入嵌套索引 - 它们被非规范化。以下是记录集

ID,PARENT_ID ,,作者

1,0,A1

2,1,A2

3,1,A3

4,1,A4

5,0,A5

6,5,A6

7.5,A7

8,0,A8

9,8,A9

10,0,A10

以上记录的id为1,5,8,10是父记录(parent_id = 0),其他记录是child(他们的parent_id值是他们的父记录)

我的solr查询应根据子记录的parent_id进行构面,使用该透视图parent_id并将其与id匹配以获取父级的作者

需要将以下两个查询合并为一个

查询1: FQ = -parent_id:0&安培;小面= TRUE; facet.pivot = PARENT_ID

从上面的查询中得到三个父ID作为分面的结果 - 1,5,8,10

查询2: fl = author& fq = parent_id IN {1,5,8,10}

最后输出应该是a1,a5,a8,a10 - 理想情况下我需要顶级作者a1,因为他们有4个孩子

我尝试了本地参数选项,分面等。但是无法找到方法来组合构面查询的输出,并在另一个查询中使用它 - 一次性完成。

限制 - 无法嵌套文档以使用块连接。任何帮助将不胜感激。谢谢

1 个答案:

答案 0 :(得分:0)

fq={!join from=parent_id to=id}-parent_id:0&facet=true&facet.field=author

所以 -parent_id:0:将除了1,5,8,10之外的所有结果,join将返回与1,5,8,10相对应的文档。 Join只返回连接完成的文档to,因此当您应用facet时,结果facet将位于1,5,8,10 docs上,为您提供所需的结果集。