XContentMapValues.extractRawValues() contains a hack whereby we ignore extra 'dummy' dotted path values appended to a source path - ie, loading data from foo.bar.dummy will also load from foo.bar. This was used to implement source loading for multifields, which do not have a name that corresponds to an existing path in source data. This was safe in general because you can't have a field that is a dot prefix of another field in index mappings. With runtime fields, however, this changes. You can define scriptless runtime fields for both foo.bar and foo.bar.dummy, and it is important that the latter does not pick up values from the former path. Source loading for multifield highlighting has already moved away from using this hack by loading everything through value fetchers. This commit removes the hack entirely, and updates term vector loading to use a value fetcher as well |
||
---|---|---|
.. | ||
core-with-mapped | ||
core-with-search | ||
src/main/java/org/elasticsearch/xpack/runtimefields/test | ||
with-security | ||
build.gradle |