From 7b653f291640ee950726774d30a24c189049f9bc Mon Sep 17 00:00:00 2001 From: Martijn van Groningen Date: Thu, 12 Jun 2025 14:22:02 +0200 Subject: [PATCH] Text field dynamic field tweak Pass down actual index version when creating text field mapper builder when mapping dynamic field. Otherwise, bwc logic always has the wrong index version in mixed cluster scenario and dynamic mapping occurs. --- .../index/mapper/DynamicFieldsBuilder.java | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/server/src/main/java/org/elasticsearch/index/mapper/DynamicFieldsBuilder.java b/server/src/main/java/org/elasticsearch/index/mapper/DynamicFieldsBuilder.java index fc0b0d864547b..71c6a4e7a9fbc 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/DynamicFieldsBuilder.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/DynamicFieldsBuilder.java @@ -334,11 +334,17 @@ public boolean newDynamicStringField(DocumentParserContext context, String name) mapperBuilderContext ); } else { + var indexSettings = context.indexSettings(); return createDynamicField( - new TextFieldMapper.Builder(name, context.indexAnalyzers(), SourceFieldMapper.isSynthetic(context.indexSettings())) - .addMultiField( - new KeywordFieldMapper.Builder("keyword", context.indexSettings().getIndexVersionCreated()).ignoreAbove(256) - ), + new TextFieldMapper.Builder( + name, + indexSettings.getIndexVersionCreated(), + context.indexAnalyzers(), + SourceFieldMapper.isSynthetic(indexSettings), + false + ).addMultiField( + new KeywordFieldMapper.Builder("keyword", context.indexSettings().getIndexVersionCreated()).ignoreAbove(256) + ), context ); }