ES搜索有如下结构: id 1 attrs k 1 v 1001 k 2 v 2001 k 3 v 3001 id 2 attrs k 1 v 1001
可以使用bool查询和must子句来实现:
{
"query": {
"bool": {
"must": [
{
"nested": {
"path": "attrs",
"query": {
"match": {
"attrs.v": 2001
}
}
}
},
{
"nested": {
"path": "attrs",
"query": {
"match": {
"attrs.v": 3001
}
}
}
}
]
}
}
}
以上查询首先使用nested查询来匹配attrs.v等于2001的子文档,然后使用nested查询来匹配attrs.v等于3001的子文档。最后将这两个nested查询放在bool查询的must子句中,表示必须同时匹配两个子句
原文地址: https://www.cveoy.top/t/topic/c2lv 著作权归作者所有。请勿转载和采集!