【发布时间】:2017-10-22 06:53:22
【问题描述】:
我有这样的文件:
{ name : "name1",
age : 30,
address :[{street : "st1" , no : 10},
{street : "st2", no : 20},
{street : "st3", no : 20}]
}
{ name : "name2",
age : 31,
address :[{street : "st2" , no : 10},
{street : "st3", no : 20},
{street : "st10", no : 20}]
}
我想发出查询以查找记录,在它们的地址数组中都是“st1” 并且存在“st2”。此查询应返回上例中的第一个文档。
查找在“st1”和“st2”中都有地址的所有文档。我写了这个查询,它什么都不返回。
{
"query": {
"nested": {
"path": "address",
"query": {
"bool": {
"must": [
{
"term": {
"address.street": "st1"
}
},
{
"term": {
"address.street": "st2"
}
}
]
}
}
}
}
}
我该如何编写这个查询?
【问题讨论】:
-
您当前的解决方案有什么问题?
-
我正在使用嵌套查询。当我使用例如“必须”时,它什么也没给我。必须[术语:{street:“st1”},术语:{street:“st2”}]。它与每个数组条目进行比较,但我想在数组中找到“st1”和“st2”。
-
你能把所有的细节都放在你的问题中吗?谢谢!
-
@mydogisbox 我稍微编辑了我的问题,希望现在已经清楚了。
-
@mydogisbox 谢谢 :)
标签: elasticsearch nested-query and-operator