当对象未定义或缺少字段时从elasticsearch获取数据

时间:2017-11-12 10:16:41

标签: node.js elasticsearch

我正在尝试通过查询指示对象是否已被处理的某个字段来从弹性搜索中获取数据。我们称之为'isHandled'。

有些对象在没有此字段的情况下编入索引。 有没有办法让“isHandled”的数据不是“真”(假,甚至丢失)?

由于

1 个答案:

答案 0 :(得分:2)

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

{

  "query": {
    "bool": {
      "should": [
        {
          "term": {
            "isHandled": "false"
          }
        },
        {
          "bool": {
            "must_not": {
              "exists": {
                "field": "isHandled"
              }
            }
          }
        }
      ]
    }
  }
}