使用Elastic 6.5.4 这是文件
[{
"owner": "corp",
"tags": [{
"name": "group",
"value": "cloud"
},
{
"name": "subnet",
"value": "24"
},
{
"name": "region",
"value": "northeast"
},
{
"name": "host",
"value": "mars.edu."
}
]
}, {
"owner": "farm",
"tags": [{
"name": "group",
"value": "azure"
},
{
"name": "subnet",
"value": "28"
},
{
"name": "region",
"value": "southeast"
},
{
"name": "host",
"value": "jupiter.org."
}
]
}]
我在上面的示例中进行了手工编码。我正在尝试通过匹配嵌套的“标签”属性来获得第一条记录。
我尝试了以下操作:
GET /addresses/address/_search
{
"query": {
"bool": {
"must": [
{"match": {"owner": "corp" }},
{
"nested": {
"path": "tags",
"query": {
"bool": {
"must": [
{"match": {"tags.name": "group"}},
{"match": {"tags.value": "cloud"}},
{"match": {"tags.name": "subnet"}},
{"match": {"tags.value": "24"}}
]
}
}
}
}
]
}
}
}
我没有得到任何结果。但是如果我只有这个:
{"match": {"tags.name": "group"}},
{"match": {"tags.value": "cloud"}},
我得到第一条记录。我需要的是能够匹配一条记录的多个名称和值对。
任何帮助将不胜感激。