在这个查询中,我想得到值为“data.addresses.ces.cp”的字段:“true”,从最近的文档中,然后它返回true值,比如false我怎么能只过滤true呢?
{ "_source": "created_at",
"size": 1,
"sort": [
{
"created_at.keyword": {
"order": "desc"
}
}
],
"query": {
"nested": {
"path": "data.addresses",
"inner_hits": {
"_source": ["data.addresses.ces.secondname", "data.addresses.ces.cp"],
"size":100
},
"query": {
"nested": {
"path": "data.addresses.ces",
"query": {
"match": {
"data.addresses.ces.cp": "true"
}
}
}
}
}
}
输出量:
"ces" : [
{
"secondname" : "lopez",
"cp" : true
},
{
"secondname" : "gomez",
"cp" : false <--------------- error
},
{
"secondname" : "garcia",
"cp" : false <---------------error
}
]
}
},
2条答案
按热度按时间wvyml7n51#
这有点令人困惑,为什么你查询
data.addresses.services.cp
,但你想检索data.addresses.ces.cp
。这个ces
是什么这是一个服务打印错误吗?在任何情况下,正如@瓦尔建议的那样,您可以将另一个
inner_hits
放入最内层的嵌套查询中:注意,
inner_hits
可以有一个name
属性来区分它们。sxpgvts32#
您需要将
inner_hits
移动到最里面的嵌套查询中: