-
Notifications
You must be signed in to change notification settings - Fork 25.3k
Set default index mode for TimeSeries to null
#98586
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
If the default index mode matches the specified, we skip printing the synthetic source info in the mappings printing. This leads to confusion as it's not immediately visible (or well known) that time series indices use synthetic source by default. Leaving the default index mode to null does the trick here. We do pass the right value for time series indexes while building the mapping so there's no functional impact here. Fixes elastic#97429
Hi @kkrik-es, I've created a changelog YAML for you. |
Pinging @elastic/es-analytics-geo (Team:Analytics) |
@elasticsearchmachine run elasticsearch-ci/bwc |
server/src/main/java/org/elasticsearch/index/mapper/SourceFieldMapper.java
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Left one comment about the assertion. Otherwise looks good.
server/src/main/java/org/elasticsearch/index/mapper/DocumentMapper.java
Outdated
Show resolved
Hide resolved
* This got restored in v.8.9 (and patched in v.8.8) to avoid confusion. The change is only restricted to | ||
* mapping printout, it has no functional effect as the synthetic source already applies. | ||
*/ | ||
this.mappingSource = mapping.toCompressedXContent(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
By doing this.mappingSource = mapping.toCompressedXContent();
we are changing the mapping source to contain the missing _source: mode: synthetic
right?
If we would do this.mappingSource = source;
here, then the that would remain to be missing?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Correct. I was thinking of storing a source that matches this output to avoid surprises further down the processing pipeline, but up to you.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
* Default index mode null for TimeSeries If the default index mode matches the specified, we skip printing the synthetic source info in the mappings printing. This leads to confusion as it's not immediately visible (or well known) that time series indices use synthetic source by default. Leaving the default index mode to null does the trick here. We do pass the right value for time series indexes while building the mapping so there's no functional impact here. Fixes elastic#97429 * Update docs/changelog/98586.yaml * Restore other error messages. * Update source in DocumentMapper to include synthetic source. * Add version check for skipping assert
💚 Backport successful
|
* Default index mode null for TimeSeries If the default index mode matches the specified, we skip printing the synthetic source info in the mappings printing. This leads to confusion as it's not immediately visible (or well known) that time series indices use synthetic source by default. Leaving the default index mode to null does the trick here. We do pass the right value for time series indexes while building the mapping so there's no functional impact here. Fixes #97429 * Update docs/changelog/98586.yaml * Restore other error messages. * Update source in DocumentMapper to include synthetic source. * Add version check for skipping assert
This reverts commit 56abb86.
* Skip segment for MatchNoDocsQuery filters. When a query of a filter gets rewritten to MatchNoDocsQuery, segments will not produce any results. We can therefore skip processing such segments. This applies to FilterByFilterAggregator and FiltersAggregator, as well as to TermsAggregator when it uses StringTermsAggregatorFromFilters internally; the latter is an adapter aggregator to FilterByFilterAggregator. Fixes #94637 * Update docs/changelog/98295.yaml * Check all filters for `MatchNoDocsQuery`. * Skip optimization when 'other' bucket is requested. * Revert "Set default index mode for TimeSeries to `null` (#98586)" This reverts commit 56abb86.
* Skip segment for MatchNoDocsQuery filters. When a query of a filter gets rewritten to MatchNoDocsQuery, segments will not produce any results. We can therefore skip processing such segments. This applies to FilterByFilterAggregator and FiltersAggregator, as well as to TermsAggregator when it uses StringTermsAggregatorFromFilters internally; the latter is an adapter aggregator to FilterByFilterAggregator. Fixes elastic#94637 * Update docs/changelog/98295.yaml * Check all filters for `MatchNoDocsQuery`. * Skip optimization when 'other' bucket is requested. * Revert "Set default index mode for TimeSeries to `null` (elastic#98586)" This reverts commit 56abb86.
* Skip segment for MatchNoDocsQuery filters. When a query of a filter gets rewritten to MatchNoDocsQuery, segments will not produce any results. We can therefore skip processing such segments. This applies to FilterByFilterAggregator and FiltersAggregator, as well as to TermsAggregator when it uses StringTermsAggregatorFromFilters internally; the latter is an adapter aggregator to FilterByFilterAggregator. Fixes #94637 * Update docs/changelog/98295.yaml * Check all filters for `MatchNoDocsQuery`. * Skip optimization when 'other' bucket is requested. * Revert "Set default index mode for TimeSeries to `null` (#98586)" This reverts commit 56abb86.
This reverts commit e370194.
* Skip segment for MatchNoDocsQuery filters. When a query of a filter gets rewritten to MatchNoDocsQuery, segments will not produce any results. We can therefore skip processing such segments. This applies to FilterByFilterAggregator and FiltersAggregator, as well as to TermsAggregator when it uses StringTermsAggregatorFromFilters internally; the latter is an adapter aggregator to FilterByFilterAggregator. Fixes #94637 * Update docs/changelog/98295.yaml * Check all filters for `MatchNoDocsQuery`. * Skip optimization when 'other' bucket is requested. * Revert "Set default index mode for TimeSeries to `null` (#98586)" This reverts commit 56abb86. * Revert "Rollback of #98586 (#98805)" This reverts commit e370194. * Skip updating source when missing synthetic mode * Update docs/changelog/98808.yaml * Skip matching assert in MapperService too * Refine the assert * Extend versions before 8.6, when TS had no synthetic source * Add source field mapping for non-synthetic TSDB * Delete 98586.yaml Duplicate changelog * Add comment to TSDB_NO_SYNTHETIC mapping * Spotless fix * Add yaml test * Fix version skip in yaml test
* Skip segment for MatchNoDocsQuery filters. When a query of a filter gets rewritten to MatchNoDocsQuery, segments will not produce any results. We can therefore skip processing such segments. This applies to FilterByFilterAggregator and FiltersAggregator, as well as to TermsAggregator when it uses StringTermsAggregatorFromFilters internally; the latter is an adapter aggregator to FilterByFilterAggregator. Fixes elastic#94637 * Update docs/changelog/98295.yaml * Check all filters for `MatchNoDocsQuery`. * Skip optimization when 'other' bucket is requested. * Revert "Set default index mode for TimeSeries to `null` (elastic#98586)" This reverts commit 56abb86. * Revert "Rollback of elastic#98586 (elastic#98805)" This reverts commit e370194. * Skip updating source when missing synthetic mode * Update docs/changelog/98808.yaml * Skip matching assert in MapperService too * Refine the assert * Extend versions before 8.6, when TS had no synthetic source * Add source field mapping for non-synthetic TSDB * Delete 98586.yaml Duplicate changelog * Add comment to TSDB_NO_SYNTHETIC mapping * Spotless fix * Add yaml test * Fix version skip in yaml test
* Skip segment for MatchNoDocsQuery filters. When a query of a filter gets rewritten to MatchNoDocsQuery, segments will not produce any results. We can therefore skip processing such segments. This applies to FilterByFilterAggregator and FiltersAggregator, as well as to TermsAggregator when it uses StringTermsAggregatorFromFilters internally; the latter is an adapter aggregator to FilterByFilterAggregator. Fixes #94637 * Update docs/changelog/98295.yaml * Check all filters for `MatchNoDocsQuery`. * Skip optimization when 'other' bucket is requested. * Revert "Set default index mode for TimeSeries to `null` (#98586)" This reverts commit 56abb86. * Revert "Rollback of #98586 (#98805)" This reverts commit e370194. * Skip updating source when missing synthetic mode * Update docs/changelog/98808.yaml * Skip matching assert in MapperService too * Refine the assert * Extend versions before 8.6, when TS had no synthetic source * Add source field mapping for non-synthetic TSDB * Delete 98586.yaml Duplicate changelog * Add comment to TSDB_NO_SYNTHETIC mapping * Spotless fix * Add yaml test * Fix version skip in yaml test
* Skip segment for MatchNoDocsQuery filters. When a query of a filter gets rewritten to MatchNoDocsQuery, segments will not produce any results. We can therefore skip processing such segments. This applies to FilterByFilterAggregator and FiltersAggregator, as well as to TermsAggregator when it uses StringTermsAggregatorFromFilters internally; the latter is an adapter aggregator to FilterByFilterAggregator. Fixes elastic#94637 * Update docs/changelog/98295.yaml * Check all filters for `MatchNoDocsQuery`. * Skip optimization when 'other' bucket is requested. * Revert "Set default index mode for TimeSeries to `null` (elastic#98586)" This reverts commit 56abb86. * Revert "Rollback of elastic#98586 (elastic#98805)" This reverts commit e370194. * Skip updating source when missing synthetic mode * Update docs/changelog/98808.yaml * Skip matching assert in MapperService too * Refine the assert * Extend versions before 8.6, when TS had no synthetic source * Add source field mapping for non-synthetic TSDB * Delete 98586.yaml Duplicate changelog * Add comment to TSDB_NO_SYNTHETIC mapping * Spotless fix * Add yaml test * Fix version skip in yaml test
If the default index mode matches the specified, we skip printing the synthetic source info in mappings. This leads to confusion as it's not immediately visible (or well known) that time series indices use synthetic source by default.
Leaving the default index mode to null does the trick here. We do pass the right value for time series indexes while building the mapping so there's no other functional impact.
Fixes #97429