老实说,我不知道是谁给它命名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
方法。
所以......我在这里做错了什么,或者是怎么回事?另外,如果是这样的话……我真的必须每次都将字符串解析回日期吗?如果是这样怎么办?