我在Elasticsearch中有动态字段的对象如下所示:
{
"_id": 1,
"fields": [
{
"identifier": "product",
"value": "Google Home"
},
{
"identifer": "currency",
"value": "bitcoin"
}
]
},
{
"_id": 2,
"fields": [
{
"identifier": "product",
"value": "Alexa"
},
{
"identifer": "currency",
"value": "INR"
}
]
},
{
"_id": 3,
"fields": [
{
"identifer": "currency",
"value": "USD"
}
]
}
如何编写一个查询来获取没有特定字段值的对象,即我希望能够搜索没有与之关联的特定产品的所有记录。 我们想要搜索所有没有产品的商品" Google Home"。它应该只返回第2和第3项。
答案 0 :(得分:0)
这就是你需要的。
{
"query": {
"bool": {
"must_not": [
{
"match": {
"fields.value": "Google Home"
}
}
]
}
}
}
进一步了解过滤器es Filters