标签:keyword timestamp support reason does formats type
问题描述
执行es的聚合histogram 或者date_histogram 返回错误。
传入报文:
{
"size":0,
"aggs":{
"calltime":{
"date_histogram":{
"field":"@timestamp",
"interval":"minute",
"format" : "yyyy-MM-dd'T'HH:mm:ss"
}
}
}
}
返回报错:
{
"error": {
"root_cause": [ {
"type": "illegal_argument_exception",
"reason": "Field [@timestamp] of type [keyword] does not support custom formats"
}],
"type": "search_phase_execution_exception",
"reason": "all shards failed",
"phase": "query",
"grouped": true,
"failed_shards": [ {
"shard": 0,
"index": "esb-srvlog-2019-07-21",
"node": "nruodlnbT8u0tJKTzRs9Eg",
"reason": {
"type": "illegal_argument_exception",
"reason": "Field [@timestamp] of type [keyword] does not support custom formats"
}
}]
},
"status": 400
}
原因分析
先通过mapping看看索引的mapping:
发现@timestamp这个字段是被设置成了 keyword类型。所以es将该字段只是视为关键字的字符串,而不是日期的类型。故也就无法对该字段进行日期的统计。
解决方法
出现类似上面的这种问题,只有重新设置索引类型,将该字段改成所期望的类型,这里应该是。通过PUT方法。如:
需要注意的是,重新设置索引后只能对后面插入的文档有效,之前的文档类型不会被改变。
标签:keyword,timestamp,support,reason,does,formats,type 来源: https://blog.csdn.net/abreaking2012/article/details/100574807
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。