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 重建索引是一个很麻烦也很危险的事情。所以请谨慎设计数据格式