如何在Elastic Painless脚本中使用toString()和Java DateTimeFormatter替换已描述的Joda dateformats?

时间:2019-05-15 19:02:03

标签: elasticsearch elasticsearch-painless

Elastic Search Painless脚本返回一条警告,指出日期格式使用     date.toString('HH')将被弃用。

  

以下警告:

     

!弃用:299 Elasticsearch-6.7.0-8453f77“不建议使用joda时间方法[toString(String)]。请改为使用[a DateTimeFormatter]。”

但是当我尝试使用Java DateTimeFormatter格式化日期时,却找不到JodaCompatibleZonedDateTime格式。

我在这里想念什么?

getHour()有效,但是格式不正确。 doc[params.date_field].date.format(f);不起作用。 doc[params.date_field].value.toString('HH');已弃用。


 "aggs": {
    "byHour": {
      "terms": {
        "script": {
          "lang": "painless",
          "source": """
            DateTimeFormatter f = DateTimeFormatter.ofPattern(params.format); 
            return  doc[params.date_field].value.format(f);

          """,
          "params": {
            "date_field": "receivedTime",
            "format": "HH"
          }
        },
        "size": 24,
        "order": {
          "_key": "asc"
        }
      }
    }
  }
  

错误:动态方法   [org.elasticsearch.script.JodaCompatibleZonedDateTime,格式/ 1]不   找到

0 个答案:

没有答案