将下面的Map应用到我的本地elasticsearch 7.4.1时
private static void addIndexMapping(RestHighLevelClient client, String indexName) throws IOException {
PutMappingRequest request = new PutMappingRequest(indexName);
XContentBuilder builder = XContentFactory.jsonBuilder();
builder.startObject();
{
builder.startObject("properties");
{
builder.startObject("modifiedDate");
{
builder.field("type", "date").field("format","yyyy-MM-dd HH:mm:ss.SSS");
}
builder.endObject();
}
builder.endObject();
}
builder.endObject();
request.source(builder);
client.indices().putMapping(request, RequestOptions.DEFAULT);
}
我可以看到下面创建的Map
{
"sandbox" : {
"mappings" : {
"modifiedDate" : {
"full_name" : "modifiedDate",
"mapping" : {
"modifiedDate" : {
"type" : "date",
"format" : "yyyy-MM-dd HH:mm:ss.SSS"
}
}
}
}
}
}
但在aws elk 7.4.2上应用相同的Map时,我看到了下面的Map
{
"sandbox" : {
"mappings" : {
"modifiedDate" : {
"full_name" : "modifiedDate",
"mapping" : {
"modifiedDate" : {
"type" : "text",
"fields" : {
"keyword" : {
"type" : "keyword",
"ignore_above" : 256
}
}
}
}
}
}
}
}
我在本地安装了elasticsearch 7.4.1,在生产环境中安装了elasticsearch 7.4.2。无法理解我的代码有什么问题。
1条答案
按热度按时间dauxcl2d1#
它要求您在插入第一个文档之前在本地创建Map。如果你不这样做,你可能是在使用模板在您的本地ElasticSearch。您可以在这里看到有关模板的更多信息。在您的例子中,模板应该是这样的: