Elasticsearch中的date查询

卫君博
2023-12-01

1、date的默认格式

date格式可以在put mapping的时候用 format 参数指定,如果不指定的话,则启用默认格式,是"strict_date_optional_time||epoch_millis"。这表明只接合"strict_date_optional_time"格式的字符串值,或者long型数字。

实测,仅支持如下格式:

  • yyyy-MM-dd
  • yyyyMMdd
  • yyyyMMddHHmmss
  • yyyy-MM-ddTHH:mm:ss
  • yyyy-MM-ddTHH:mm:ss.SSS
  • yyyy-MM-ddTHH:mm:ss.SSSZ”,
  • 时间戳支持毫秒级查询

不支持常用的"yyyy-MM-dd HH:mm:ss"等格式。

2、yyyy-MM-dd HH:mm:ss格式查询

可以通过format参数来显式指定es接受的date格式,多个date格式需用||分隔,查询时会一次依次匹配

{
    "query": {
        "bool": {
            "must": [{"terms": {
                "sn": ["0000000"]
            }}, {"range": {
                "logtime": {
                    "gt": "2022-04-02 00:00:00",
                    "lt": "2022-04-02 23:00:00",
                    "format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis",
                }
            }}
            ]
        }

    }

ElasticSearch中的date类型_自知自省的博客-CSDN博客

 类似资料: