Solr 使用子查询时如何将子文档与父文档匹配?

Solr 使用子查询时如何将子文档与父文档匹配?,solr,Solr,我想在Solar中使用子查询,但我的子文档是由不相关的父级检索的 模型示例: { “id”:1, “父项标题”:“堆栈溢出问题1”, “u childDocuments_uu”:[ { “id”:1, “子标题正文”:“标题正文1” } ] }, { “id”:2, “父项标题”:“堆栈溢出问题2”, “u childDocuments_uu”:[ { “id”:2, “子标题正文”:“标题正文2” } ] } 我使用以下查询: q= parent_title:stack fl= *, sub

我想在Solar中使用子查询,但我的子文档是由不相关的父级检索的

模型示例:

{
“id”:1,
“父项标题”:“堆栈溢出问题1”,
“u childDocuments_uu”:[
{
“id”:1,
“子标题正文”:“标题正文1”
}
]
},
{
“id”:2,
“父项标题”:“堆栈溢出问题2”,
“u childDocuments_uu”:[
{
“id”:2,
“子标题正文”:“标题正文2”
}
]
}
我使用以下查询:

q= parent_title:stack
fl= *, subquery:[subquery]&subquery.q=child_body:title
结果:

{
    "id":"1",
    "parent_title":["stack overflow question 1"],
    "subquery":{"numFound":2,"start":0,"docs":[
        {
          "id":"1",
          "child_body":["body of title 1"]
        },
        {
          "id":"2",
          "child_body":["body of title 2"]            
        }]
    }
},
{
    "id":"2",
    "parent_title":["stack overflow question 2"],
    "subquery":{"numFound":2,"start":0,"docs":[
        {
          "id":"1",
          "child_body":["body of title 1"]        
        },
        {
          "id":"2",
          "child_body":["body of title 2"],
        }]
    }
}

问题:我不想检索父项“问题1”下的子项“标题2”。那么,如何将子查询子对象与其对应的父对象进行匹配?

您可以更改模型,以包含父对象id,并按
$row.id
进行筛选

型号:
{
“id”:1,
“父项标题”:“堆栈溢出问题1”,
“u childDocuments_uu”:[
{
“id”:1,
“家长id”:1,
“子标题正文”:“标题正文1”
}
]
},
{
“id”:2,
“父项标题”:“堆栈溢出问题2”,
“u childDocuments_uu”:[
{
“id”:2,
“家长id”:2,
“子标题正文”:“标题正文2”
}
]
}
查询: 结果:
[
{
“id”:“1”,
“父项标题”:[“堆栈溢出问题1”],
“子查询”:{“numFound”:1,“start”:0,“docs”:[
{
“id”:“1”,
“父项id”:[1],
“子标题正文”:[“标题正文1”],
“$row.id”:1000
}
]}
},
{
“id”:“2”,
“父项标题”:[“堆栈溢出问题2”],
“子查询”:{“numFound”:1,“start”:0,“docs”:[
{
“id”:“2”,
“家长id”:[2],
“子机构”:[“标题机构2”],
“$row.id”:2000
}
]}
}
]
q= parent_title:stack
fl= *, subquery:[subquery]&subquery.q=child_body:title&subquery.fq={!terms f=parent_id v=$row.id}