按日期弹性搜索

时间:2016-08-17 10:00:34

标签: elasticsearch

我有这个查询。

{
  "filter": {
    "bool": {
      "must": [
        {
          "term": {
            "active": 1
          }
        }
      ],
      "should": [
        {
          "range": {
            "datum": {
              "lt": "17/08/16",
              "format": "dd/MM/yyyy"
            }
          }
        }
      ]
    },
    "sort": {
      "datum": "asc"
    }
  }
}

它给了我

  

无法解析搜索源。预期的字段名称但得到了   [START_OBJECT]“}]

这是第一个问题。然后我需要在事件中搜索,并且只查找将来或正在进行的事件。

活动有2个日期。

Datum =事件的开始

Datum_to =事件结束(如果为空,则基准也是结束日期)

1 个答案:

答案 0 :(得分:1)

您使用的是哪个版本的Elasticsearch?

从版本2.0开始,不再有顶级filter子句。查询和过滤器已合并为一个,请参阅Breaking changes

要搜索未来开始或尚未完成的事件,两个should条款应该可以解决问题,例如:

{
  "query": {
    "bool": {
      "should": [
        {
          "range": {
            "Datum": {
              "gt": "now"
            }
          }
        },
        {
          "range": {
            "Datum_to": {
              "gt": "now"
            }
          }
        }
      ]
    }
  }
}