-
Notifications
You must be signed in to change notification settings - Fork 0
[CORRUPTED] Synthetic Benchmark PR #137483 - Store keyword fields that trip ignore_above in binary doc values #28
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
base: base_pr_137483_20251204_6030
Are you sure you want to change the base?
Conversation
PR Compliance Guide 🔍Below is a summary of compliance checks for this PR:
Compliance status legend🟢 - Fully Compliant🟡 - Partial Compliant 🔴 - Not Compliant ⚪ - Requires Further Human Verification 🏷️ - Compliance label |
||||||||||||||||||||||||||
PR Code Suggestions ✨Explore these optional code suggestions:
|
||||||||||||||
User description
Benchmark PR elastic#137483
Type: Corrupted (contains bugs)
Original PR Title: Store keyword fields that trip ignore_above in binary doc values
Original PR Description: https://github.com/elastic/logs-program/issues/13
Original PR URL: elastic#137483
PR Type
Enhancement, Bug fix
Description
Store ignored keyword values in binary doc values instead of stored fields
Add
BinaryDocValuesSyntheticFieldLoaderLayerfor reading binary doc values during synthetic source generationCreate
MultiValuedBinaryDocValuesFieldto encode multiple values as single binary arrayRefactor
MatchOnlyTextFieldMapperto use binary doc values for ignored valuesAdd
CustomBinaryDocValueswrapper to decode binary doc values with quality-of-life functionsSimplify field fetcher logic by removing redundant stored field fallbacks
Update
WildcardFieldMapperto use sharedBinaryDocValuesSyntheticFieldLoaderLayerDiagram Walkthrough
File Walkthrough
MatchOnlyTextFieldMapper.java
Refactor to use binary doc values for ignored valuesmodules/mapper-extras/src/main/java/org/elasticsearch/index/mapper/extras/MatchOnlyTextFieldMapper.java
parentFieldFetcher()to useignoredValuesDocValuesFieldFetcher()instead of stored field fallbackdelegateFieldFetcher()to simplify field name handling anduse binary doc values fetcher
getValuesFromDocValues()helper method to decode doc valuesconsistently
ignoredValuesDocValuesFieldFetcher()to read ignored values frombinary doc values field
CustomBinaryDocValuesinner class to wrapBinaryDocValuesandexpose
SortedBinaryDocValuesinterfaceBinaryDocValuesSyntheticFieldLoaderLayer.java
New layer for reading binary doc values in synthetic sourceserver/src/main/java/org/elasticsearch/index/mapper/BinaryDocValuesSyntheticFieldLoaderLayer.java
CompositeSyntheticFieldLoader.DocValuesLayerinterface
source generation
[doc value count][length of value1][value 1]...DocValuesLoaderto iterate through documents and extractvalues
write()method to output decoded values toXContentBuilderKeywordFieldMapper.java
Store ignored values in binary doc values fieldserver/src/main/java/org/elasticsearch/index/mapper/KeywordFieldMapper.java
ElasticsearchExceptionandBytesStreamOutputLinkedHashSetto maintain insertion orderindexValue()to store ignored values inMultiValuedBinaryDocValuesFieldinstead ofStoredFieldStoredFieldLayerwithBinaryDocValuesSyntheticFieldLoaderLayerin synthetic source support
MultiValuedBinaryDocValuesFieldinner class that encodes multiplevalues as single binary array
binaryValue()to serialize values with count and lengthprefixes
NativeArrayIntegrationTestCase.java
Collapse single-element arrays to scalarstest/framework/src/main/java/org/elasticsearch/index/mapper/NativeArrayIntegrationTestCase.java
arrayToSource()to collapse single-element arrays into scalarfields
WildcardFieldMapper.java
Use shared binary doc values layer implementationx-pack/plugin/wildcard/src/main/java/org/elasticsearch/xpack/wildcard/mapper/WildcardFieldMapper.java
BinaryDocValues,LeafReader, andByteArrayStreamInputBinaryDocValuesSyntheticFieldLoaderLayerWildcardSyntheticFieldLoaderwithBinaryDocValuesSyntheticFieldLoaderLayerWildcardSyntheticFieldLoaderinner class implementationKeywordSyntheticSourceNativeArrayIntegrationTests.java
Update test for deduplicated ignored valuesserver/src/test/java/org/elasticsearch/index/mapper/KeywordSyntheticSourceNativeArrayIntegrationTests.java
expectedArrayValuesarray showing deduplicated results10_basic.yml
Update test data for deduplication behaviormodules/mapper-extras/src/yamlRestTest/resources/rest-api-spec/test/match_only_text/10_basic.yml
"Apache Lucene"to test input array