我正在构建一个Elasticsearch查询,该查询通过地理位置限制查询商品。
我想过滤列表,使其仅包含与id
和accountOwner
的项目属性不匹配的项目。
所以我可能会从elasticsearch那里获得物品清单
[{
"account": 1,
"id": 1,
"name": "first"
},
{
"account": 1,
"id": 2,
"name": "second"
},
{
"account": 2,
"id": 2,
"name": "second"
}
]
我想在查询中传递一个过滤器,该过滤器说不包含与[{account:1,id:2}]
相匹配的项目(是的,它必须是一个数组)
我希望从ElasticSearch中获得的是上面的列表,但是上面的数组中没有一个项目。
我一直试图在文档中对它进行解密,但是并没有完全找到我想要的东西。
我的查询(可能与问题无关)
{
"query": {
"bool": {
"must": [{
"geo_distance": {
"distance": "100km",
"start": {
"lat": -37.8642399,
"lon": 144.9732028
}
}
}],
"must_not": [{
"id": 2,
"account": 1
}]
}
}
}
请注意,我只想删除两个帐户和ID都不匹配的项目