Elasticsearch关闭自动日期检测

       在某些情况下,当字段的值既可能是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;

 


版权声明:本文为qq_32883723原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。