Open
Description
Related to #115394.
When a block loader uses source to read values of a field it parses the entire source into a Map
and extracts needed field values by waking that map (this is done in SourceValueFetcher
). This logic has a similar problem to synthetic source - it is wasteful to create this map when we only need a single field.
We could rework this by using an XContentParser
with a filter applied to only parse relevant pieces of source (see `FallbackSyntheticSourceBlockLoader#parseFieldFromParent). This may be faster but needs to be benchmarked first.