Solr 筛选子文档并检索父文档+;子文档

Solr 筛选子文档并检索父文档+;子文档,solr,Solr,我的Solr服务器中有一个简单的文档: { "id": 1, "type": "dad", "_childDocuments_": [ { "id": 2, "name": "Alice" }, { "id": 3, "name": "Bob" } ] } 我想筛选此文档,以便仅检索“Alice”文档以及

我的Solr服务器中有一个简单的文档:

{
    "id": 1,
    "type": "dad",
    "_childDocuments_": [
        {
            "id": 2,
            "name": "Alice"
        },
        {
            "id": 3,
            "name": "Bob"
        }
    ]
}
我想筛选此文档,以便仅检索“Alice”文档以及父文档,不包括另一个子文档“Bob”

预期结果:

{
    "id": 1,
    "type": "dad",
    "_childDocuments_": [
        {
            "id": 2,
            "name": "Alice"
        }
    ]
}
为此,我使用以下查询:

q: name:Alice
fl: *, [child parentFilter=*:* limit=10]
问题是:此筛选器只返回Alice子文档,而不返回相应的dad父文档

如何修复此搜索?我曾尝试使用建议的
parentFilter=type:dad
,但此查询引发了我无法理解的问题:

父查询不能与父过滤器之外的任何单据匹配。将它们组合为must(+)和must not(-)子句以查找问题文档。docID=0

此外,如果我使用以下选项进行筛选:

q: type:dad name:Alice
fl: *, [child parentFilter=*:* limit=10]

我将得到两个文档:dad+Alice,而不是一个包含dad->Alice的文档。您可以使用
childFilter
parentFilter

q= type:dad
fl= *, [child parentFilter=type:dad childFilter=name:Alice limit=10]
结果:

“响应”:{
“numFound”:1,
“开始”:0,
“文件”:[
{
“id”:“1”,
“类型”:[“dad”],
“版本”:1603065478506348544,
“类型_str”:[“dad”],
“u childDocuments_uu”:[
{
“id”:“2”,
“姓名”:[“爱丽丝”],
“版本”:1603065478506348544,
“姓名”:[“爱丽丝”]
}
]
}
]
}

[child…childFilter=name:Alice]
怎么样?