如何比较elasticsearch无痛脚本中的日期?

时间:2018-01-18 16:53:33

标签: elasticsearch elasticsearch-painless elasticsearch-6

老实说,我不知道是谁命名的painless,因为它确实不是,而且文档肯定不准确。

首先,我尝试与日期进行比较的字段被映射为date

脚本本身看起来像这样:

Date max = new Date(params.updated_at);
for (...) {
    if (ctx._source.arr[i]['updated_at'].after(max)) {
        max = ctx._source.arr[i]['updated_at'];
    }
}

ctx._source.updated_at = max;

我得到的错误是:"caused_by":{"type":"illegal_argument_exception","reason":"Unable to find dynamic method [after] with [1] arguments for class [java.lang.String]."

现在我的问题是:为什么地球上映射为date的字段会是string

阅读API(https://www.elastic.co/guide/en/elasticsearch/painless/master/painless-api-reference.html)清楚地说明Date采用after方法。

所以...我在这里做了一些完全错误的事情,或者说是什么情况?此外,如果它是如何...我真的必须每次解析字符串回到日期?如果是这样的话?

0 个答案:

没有答案