我想在弹性搜索中从日期开始获取年份。我的映射就像 -
"timeModified":
{
"type": "date",
"format": "strict_date_optional_time||epoch_millis"
}
我在弹性搜索中的数据存储是 -
"timeModified": "2015-03-12T13:18:50.000+05:30"
我想从日期开始获取年份。当我执行以下查询时 -
{
"query" : {
"match_all": {}
},
"script_fields" : {
"left_field" : {
"script" : {
"inline": "doc.timeModified.value.substring(0, length)",
"params": {
"length": 4
}
}
}
}
}
它给了我例外-
"方法没有签名:java.lang.Long.substring() 适用于参数类型:(java.lang.Integer, java.lang.Integer) 值:[0, 4]\n可能的解决方案:toString(), toString (), toString(), toString(long, int) "
如果我可以选择将字段值日期转换为字符串而不改变我的实际映射类型,我会得到正确的值。所以请建议如何在弹性搜索查询中转换字符串。或者,如果有任何其他选项可以从日期开始计算,那么也建议。