在某些情况下,当字段的值既可能是text又可能是data时,如果我们不设定类型,就会导致错误发生。如果我们无法对这些字段一一设置类型的话,这时候就可能需要关闭自动日期检测。
官方文档给出了关闭一个指定type自动日期检测的例子,就是设置type为"date_detection": false,因为后面版本每个index只有一个type,这样可以满足我们的需求。而且每个index有一个默认type,叫做"_default_",是所有type的原型,指定这个type关闭自动日期检测,新建的每个type就都会关闭自动日期检测了。
"mappings": {
"type": {
"date_detection": false,
"properties": {
...
...
...
}
}
}
java设置mapping如下:
XContentBuilder builder = XContentFactory.jsonBuilder()
.startObject().startObject(type).field("date_detection","false")
.startObject("properties")
//...省略字段
.endObject().endObject().endObject();
return builder;