elasticsearch 根据每个文档中数组内的元素检索文档

nnt7mjpx  于 2023-01-08  发布在  ElasticSearch
关注(0)|答案(1)|浏览(103)

我正在做一个弹性查询,需要根据文档数组中第一个元素内的属性返回所有文档。请参考下面的文档结构。

用户文档

{
  "name": "Sam",
  "age": 20,
  "vehicle": [
    {
      "type": "car",
      "capacity": 4,
      "registration": {
        "date": "20.02.2020",
        "plate": null
      }
    }
  ]
}

每个文档在车辆数组中只有1个元素。
以上是我的ES中的一个示例文档,要求获取集合中所有值为“null”的文档。我尝试了两天的各种查询,但没有一个成功,并且在查询中出现错误。如何解决这个问题?

k4aesqcs

k4aesqcs1#

我的建议是检查字段“vehicle”中是否存在任何字段,例如:字段“类型”。

{
  "query": {
    "bool": {
      "must_not": [
        {
          "script": {
            "script": "doc['vehicle.type.keyword'].size() > 0"
          }
        }
      ]
    }
  }
}

相关问题