您的位置:首页 > 其它

ElasticSearch 中符合其规定的分析规则的字符串可能会认为是date 类型的数据

2018-01-23 20:02 204 查看
curl -XPOST "http://localhost:9200/myindex/tweet/" -d'
{
"content": "Hello World!",
"postDate": "2009-11-15T14:12:12"
}

如果一开始存入这样的数据。Elasticsearch 会认为是

{
"myindex": {
"mappings": {
"tweet": {
"properties": {
"content": {
"type": "string"
},
"postDate": {
"type": "date",
"format": "dateOptionalTime"
}
}
}
}
}
}
如果你想要关闭ElasticSearch 的话你就可以在the root object  对是根对象的mappings 中添加如下配置

curl -XPUT "http://localhost:9200/myindex" -d'
{
"mappings": {
"tweet": {
"date_detection": false
}
}
}'
在执行一遍这个。

curl -XPOST "http://localhost:9200/myindex/tweet/" -d'
{
"content": "1985-12-24",
"postDate": "2009-11-15T14:12:12"
}'
你会发现类型现在elasticsearch 的映射关系变为如下:

{
"myindex": {
"mappings": {
"tweet": {
"date_detection": false,
"properties": {
"content": {
"type": "string"
},
"postDate": {
"type": "string"
}
}
}
}
}
}
如果你想给其它的字段编程是date类型那么你需要在事先就进行好数据格式的设计明确哪些字段是事件格式。

curl -XPUT "http://localhost:9200/myindex" -d'
{
"mappings": {
"tweet": {
"date_detection": false,
"properties": {
"postDate": {
"type": "date"
}
}
}
}
}'
因为elasticsearch 重建索引是一个很麻烦也很危险的事情。所以请谨慎设计数据格式
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐