我尝试使用Block Join Parent Query Parser(q={!parent which=allParents}someChildren)检索父文档,但我给出的筛选条件在父文档和子文档中具有相同的字段,因此Parser抛出以下错误:“子查询不能与具有父筛选器的相同文档匹配。将它们组合为must子句(+)以查找问题文档。”
例如:
{
"parent": {
"name": "sam",
"age": "30",
"degree": "MBBS",
"docType" : "parent",
"childrens": [{
"name": "chang",
"age": "3"
},
{
"name": "joseph",
"age": "10"
}
]
}
}
我想触发一个下面的查询:
q={!parent which=文档类型:父级}名称:转换器
或
文件类型:父文件名:sam
在这两种情况下,我都想检索父文档,我想将在节中指定的名称字段与父名称字段或子名称字段匹配。
我认为这是不可能的“块连接父查询解析器”,寻找一些替代的解决方案。
有人能帮我找到更好的方法吗?
1条答案
按热度按时间ybzsozfc1#
可以在
someChildren
中添加另一个条件,以确保它不会匹配任何父对象。为此,您可以将特定属性添加到子级,例如
"docType" : "child"
,并将其与name
属性结合使用:另请参阅:Solr parent-child query