Open lkts opened 5 days ago
8.16
No response
bundled
x
When copy_to values are parsed, we create a custom context via createCopyToContext. This context preserves the dynamic value from parent context which is wrong. That value is for the field that is a source of the copy, not the destination. As a result, when copy_to destination is a dynamically mapped field and https://github.com/elastic/elasticsearch/blob/45306a52c240ef153d2dcea8b8d36c2ab8ecc313/server/src/main/java/org/elasticsearch/index/mapper/DocumentParser.java#L533 is called, it throws an exception that is wrong.
copy_to
createCopyToContext
dynamic
PUT my-index { "mappings": { "properties": { "copy_source": { "dynamic": "strict", "properties": { "k": { "type": "keyword", "copy_to": "dest" } } } } } } POST my-index/_bulk?refresh { "create": {} } { "copy_source": { "k": "let's copy" } } // Results in this which is wrong "error": { "type": "strict_dynamic_mapping_exception", "reason": "[1:25] mapping set to strict, dynamic introduction of [dest] within [_doc] is not allowed" }
Pinging @elastic/es-storage-engine (Team:StorageEngine)
Pinging @elastic/es-search-foundations (Team:Search Foundations)
Related to #112966 and #112919.
Elasticsearch Version
8.16
Installed Plugins
No response
Java Version
bundled
OS Version
x
Problem Description
When
copy_to
values are parsed, we create a custom context viacreateCopyToContext
. This context preserves thedynamic
value from parent context which is wrong. That value is for the field that is a source of the copy, not the destination. As a result, whencopy_to
destination is a dynamically mapped field and https://github.com/elastic/elasticsearch/blob/45306a52c240ef153d2dcea8b8d36c2ab8ecc313/server/src/main/java/org/elasticsearch/index/mapper/DocumentParser.java#L533 is called, it throws an exception that is wrong.Steps to Reproduce
Logs (if relevant)
No response