Elasticsearch查询 - 组合查询

时间:2018-05-25 13:13:03

标签: elasticsearch

我正在使用Elasticsearch和Kibana 6.2.4。我有以下查询检索以下条件的数据:(1)给我所有记录,其中endUtc不存在; (2)如果endUtc的值设置为大于从系统检索的当前时间戳,则给我所有记录。

GET /session/_search
{
  "query": {
    "bool": {
      "must_not": { 
        "exists": {
          "field": "endUtc"
        }
      }
    }
  }
}

和...

GET /session/_search
{
  "query": {
    "range": {
      "endUtc": {
        "gt": "<Current date/time>"
      }
    }
  }
}

我在将两个查询组合在一起时遇到问题。有没有ES查询专家知道如何使这项工作?

感谢。

1 个答案:

答案 0 :(得分:0)

看看https://www.elastic.co/guide/en/elasticsearch/guide/current/bool-query.html

您的查询可能如下:

{
  "query": {
    "bool": {
      "should": [
        {
          "query": {
            "bool": {
              "must_not": {
                "exists": {
                  "field": "endUtc"
                }
              }
            }
          }
        },
        {
          "range": {
            "endUtc": {
              "gt": "<Current date/time>"
            }
          }
        }
      ]
    }
  }
}