我有以下映射
{
"properties": {
"restaurant_name": {"type": "string"},
"menu": {
"type": "nested",
"properties": {
"name": {"type": "string"}
}
}
}
}
我正在尝试过滤所有那些具有可选"菜单"字段存在
GET /restaurnats/_search
{
"filter": {
"query": {
"bool": {
"must": [
{"exists" : { "field" : "menu" }}
]
}
}
}
}
但是,当我尝试使用相同的查询过滤那些包含" restaurant_name"的文档时,它可以正常工作。那么为什么嵌套的现场检查不起作用?如何让它发挥作用?
答案 0 :(得分:4)
您需要使用nested
查询:
{
"filter": {
"query": {
"nested": {
"path": "menu",
"query": {
"bool": {
"must": [
{
"exists": {
"field": "menu"
}
}
]
}
}
}
}
}
}