elasticsearch - elasticsearch嵌套查询,多一个对象应满足条件
问题描述
我对嵌套查询有一些疑问。这是我的例子。映射是{"user":"nested"}
。存在的数据就像这样:
{
"user": [
{
"first":"John",
"last":"Smith"
},
{
"first":"Alice",
"last":"White"
}
]
}
如何创建查询以查找满足所有条件的文档:
- user 的第一个对象,它的“first”是“John”,“last”是“Smith”;
- 用户的第二个对象,它的“第一个”是“Alice”,“最后一个”是“White”
解决方案
尝试以下查询:
{
"query":{
"bool":{
"filter":[
{
"bool":{
"must":[
{
"bool":{
"must":[
{
"nested":{
"query":{
"bool":{
"must":[
{
"match_phrase":{
"user.first":{
"query":"John"
}
}
},
{
"match_phrase":{
"user.last":{
"query":"Smith"
}
}
}
]
}
},
"path":"user"
}
},
{
"nested":{
"query":{
"bool":{
"must":[
{
"match_phrase":{
"user.first":{
"query":"Alice"
}
}
},
{
"match_phrase":{
"user.last":{
"query":"White"
}
}
}
]
}
},
"path":"user"
}
}
]
}
}
]
}
}
]
}
}
}
推荐阅读
- kubernetes - 卡住 nginx 入口
- php - 电子邮件已被接收,更新 Laravel 8 时
- reactjs - 在反应中从服务器获取列表组
- firebase - Dart 未处理的异常:[firebase_storage/unknown] 位置不应是完整的 URL
- python - 为什么烧瓶会话是纯文本的?
- java - Java中没有volatile的变量
- java - 如何删除目录中的所有重复文件?爪哇
- yocto - 为什么 Yocto 在 TMPDIR 中使用绝对路径?
- react-native - 如何在本机反应中获得 EXT-X-PROGRAM-DATE-TIME?
- c# - 如何在 AMQP 1.0 和 RabbitMQ 中使用主题和队列实现发布/订阅者?