如何对elasticsearch中的属性执行不存在的查询?

时间:2018-04-19 18:21:52

标签: elasticsearch

我在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项。

1 个答案:

答案 0 :(得分:0)

这就是你需要的。

{
  "query": {
    "bool": {
      "must_not": [
        {
          "match": {
            "fields.value": "Google Home"
          }
        }
      ]
    }
  }
}

进一步了解过滤器es Filters