您好我有以下文档结构:
{
"_childDocuments_": [{
"id": 6186039,
....
"title_s": "doctitle text to be matched childone",
....
}, {
"id": 6186038,
....
"title_s": "doctitle text to be matched childtwo",
....
}, {
"id": 6186037,
....
"title_s": "doctitle text to be matched childthree",
....
}],
"id": 6186040,
....
"title_s": "parenttitle doctitle to be matched",
....
}
我想在以下情况下获取子文档: 1.与孩子匹配的头衔 2.在父母中匹配的标题 3.孩子和父母都匹配的头衔
我尝试了各种组合,但在一个查询中无法满足所有三个条件
任何人都可以知道如何获得它吗?
答案 0 :(得分:0)
如果您有任何方法可以区分父母和孩子,那么查询会更容易。例如,要查询父标题何时已知,您可以使用{!child of = allParents} title_s: parentTitle ,您可以通过标识父文档的某些条件替换allParents,例如添加类型。例如,如果添加了类型,那么对于所有父文档,type是parent,对于childs,它是child。然后查询将成为{!child of = type:parent} title_s: parentTitle 。
如果你有子标题,那么你可以用两个过滤查询查询类型:child和title_s: childTitle
有关块连接查询的参考,请参阅:https://cwiki.apache.org/confluence/display/solr/Other+Parsers#OtherParsers-BlockJoinQueryParsers