es 中,字符串时间自动转换为date类型

Elasticsearch | 作者 dreams | 发布于2016年01月26日 | 阅读数:5928

curl 命令,自动把时间字段的字符串转换成date类型例如:
 
curl -XPUT http://localhost:9200/test/person/1 -d '
 {
"name":"1",
 
"birthday":"2016-02-15 18:14:13", 
"no":"2222",
"age":"100",
"top":"20",
"weigth":"40",
"with":"123.0",
"boy":"2" 
 }
 '
在person 的mapping时,es会自动为其创建mapping,但是默认不会为birthday 定义为date类型,如果需要自动转换,则需要修改其源码:
1. 在RootObjectMapper.DYNAMIC_DATE_TIME_FORMATTERS 字段中检查你的时间格式是否已经在默认当中,如果没有,则需要加上去.
2. 确保 RootObjectMapper.DATE_DETECTION=true.
 
 
 
同理,如果想让age,no等等数字类型自动转换为int,long,float类型可以设置:RootObjectMapper.NUMERIC_DETECTION=true.
 
已邀请:

要回复问题请先登录注册