使用两个字段选择时间范围

时间:2019-03-27 13:49:41

标签: elasticsearch

start_dateend_date定义了一个时间范围,我正在尝试获取给定日期03/27/2019在该时间范围内的所有文档

GET users/_search
{
  "query": {
    "bool": {
      "must": [
        {
          "range": {
            "start_date": {
              "lte": "03/27/2019"
            }
          }
        },
        {
          "range": {
            "end_date": {
              "gte": "03/27/2019"
            }
          }
        },
        {
          "terms": {
            "locations": [
              "all"
            ]
          }
        }
      ],
      "must_not": [
        {
          "match": {
            "gender": "male"
          }
        }
      ]
    }
  }
}

查询没有产生正确的文档,例如具有以下值的文档:

  "start_date": "11/25/2018"
  "end_date": "12/25/2019"

未退回

字段映射:

"start_date": {
            "type": "date",
            "format": "MM/DD/yyyy"
          },
"end_date": {
            "type": "date",
            "format": "MM/DD/yyyy"
          },

1 个答案:

答案 0 :(得分:1)

我认为您的日期格式不正确。

应为MM/dd/yyyy而不是MM/DD/yyyy