当对象中字段未定义或丢失时从elasticsearch获取数据

Eli*_*erg 2 node.js elasticsearch

我试图通过查询某个字段来从弹性搜索获取数据,该字段指示对象是否已被处理。我们称之为“isHandled”。

有些对象没有此字段进行索引。有没有办法获取“isHandled”不是“true”(错误甚至丢失)的数据?

谢谢

Val*_*Val 5

您可以使用exists查询来实现这一点。此查询将返回所有isHandled错误或不存在的文档。

{

  "query": {
    "bool": {
      "should": [
        {
          "term": {
            "isHandled": "false"
          }
        },
        {
          "bool": {
            "must_not": {
              "exists": {
                "field": "isHandled"
              }
            }
          }
        }
      ]
    }
  }
}
Run Code Online (Sandbox Code Playgroud)