Hello,World

关于数组内容查询问题

Elasticsearch | 作者 zhangdi | 发布于2021年04月21日 | 阅读数:922

我有这样一个结构的宽表:
[{
"id": 1000,
"name ": "父1",
"modules": [{
"id": 111,
"name": "名字而已111"
},
{
"id": 222,
"name": "名字而已222"
},
{
"id": 333,
"name": "名字而已333"
}
]
},
{
"id": 2000,
"name": "父2",
"modules": [{
"id": 333,
"name": "名字而已333"
},
{
"id": 444,
"name": "名字而已444"
}
]
}
]

怎么查询 modules 中,同时拥有 modules.id=111 和 modules.id=333 的文档
用了terms:[111,333],但是terms是或,有其一就算满足条件,想要且的关系,不知该如何查询。。。
modules在我的查询中只是其中一个条件,与其它条件为 must 关系,比如:
 {
"query": {
"bool": {
"must": [
{
"nested": {
"query": {
"想要同时拥有某些元素": {
"modules.id": [111,333]
}
},
"path": "modules"
}
},
{
"term": {
"id": {
"value": 1000
}
}
}
]
}
}
}
已邀请:

zhangdi - d_vv

赞同来自:

因为是嵌套的属性,使用多个term.modules.id=xxx 速度比较慢

要回复问题请先登录注册