Validate user-supplied missing values on unmapped fields #43718
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR adds the ability for Aggregation factories to have finer grained control over how missing values are mapped to
ValuesSource
s. Technically speaking, this addresses a minor bug in the terms aggregation, but more importantly it resolves a design constraint for Range field aggregations. I opened the PR against master however because it doesn't depend on any of the range field aggregation work and touches shared infrastructure for aggregations, so getting it in master sooner will avoid merge conflicts down the road.I've added a bunch of tests, and done my best to preserve the existing behavior wherever possible. The only noticeable change should be that if you pass something exceedingly unusual as a missing value for an unmapped field to the terms agg, it will no longer silently convert it to a string and continue. Instead, it will throw an
AggregationExecutionException
same as if you'd had that value in a mapped field.