当我对同一路径有多个嵌套子查询时,结果似乎只包括最后一个嵌套子查询的内部匹配结果。有没有办法返回多个嵌套子查询的所有内部匹配结果?
例如
{
"query": {
"bool: {
"must": [{
"nested": {
"query": {...},
"path": "path_a",
"inner_hits": {}
}
},{
"nested": {
"query": {...},
"path": "path_a",
"inner_hits": {}
}
}]
}
}
}
答案 0 :(得分:3)
如果您在name
上添加唯一的inner_hits
,则结果将基本上包含您期望的内部匹配的地图。
注意:似乎内部匹配有时在matched_queries
中包含额外的查询名称(来自其他嵌套查询),因此可能需要一些后处理
答案 1 :(得分:1)
对于同一路径,需要在子查询之前指定嵌套路径。
下面是通过匹配或范围在同一嵌套路径中搜索的示例。您可以根据需要修改搜索。
GET index/_search
{
"query": {
"nested": {
"path": “path.subpath”,
"query": {
"bool": {
"must": [
{ "match": { “path.subpath.match1”: “valueMatch” }},
{ "range" : { “path.subpath.range1” : {"gte": “rangeMatch” } }
}
]
}
}
}
}
}
我希望这会有所帮助!