Skip to content

Conversation

masseyke
Copy link
Member

@masseyke masseyke commented Sep 16, 2025

We plan to use conditional scripts in order to decide whether to randomly sample a document for later retrieval. This change moves the logic that ConditionalProcessor uses to create an unmodifiable view of IngestDocument's source map into a new getUnmodifiableSourceAndMetadata() method in IngestDocument.
The unmutable-related code was moved from ConditionalProcessor to IngestDocument unmodified. There is no change in functionality. The unit tests were ported to IngestDocumentTests. I have also added a test that shows what the behavior is when a user attempts to modify a byte[].
You can see its expected usage in a prototype at #134233

@masseyke masseyke added :Data Management/Ingest Node Execution or management of Ingest Pipelines including GeoIP >refactoring v9.2.0 labels Sep 16, 2025
@masseyke masseyke marked this pull request as ready for review September 16, 2025 15:31
@masseyke masseyke requested a review from joegallo September 16, 2025 15:31
@elasticsearchmachine elasticsearchmachine added the Team:Data Management Meta label for data/management team label Sep 16, 2025
@elasticsearchmachine
Copy link
Collaborator

Pinging @elastic/es-data-management (Team:Data Management)

@masseyke masseyke changed the title Exposing ConditionalProcessors unmodifiable map for use by other classes in the package Adding a getUnmodifiableSourceAndMetadata() method to IngestDocument Sep 16, 2025
@joegallo
Copy link
Contributor

joegallo commented Sep 17, 2025

I merged #134851 into main and then main into this PR, so that part of the diff here dropped out. Thanks for putting up with my shenanigans, @masseyke.

Copy link
Contributor

@joegallo joegallo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, just do a little polishing on those comments that I indicated, please.

@masseyke masseyke merged commit ab5a22f into elastic:main Sep 18, 2025
34 checks passed
@masseyke masseyke deleted the expose-ConditionalProcessor-unmodifiable-map branch September 18, 2025 15:52
szybia added a commit to szybia/elasticsearch that referenced this pull request Sep 18, 2025
* upstream/main: (43 commits) Unmute testAckedIndexing to see if it still fails on main (elastic#134682) Silence time zone ID deprecation warning for JDK 25 due to log4j2 bug. (elastic#134719) Adding a getUnmodifiableSourceAndMetadata() method to IngestDocument (elastic#134816) Mark the create-index-from-source action as publicly available on Serverless (elastic#134953) ESQL: Rename command from INLINESTATS to INLINE STATS (elastic#134827) Document multi index query support for simplified retrievers (elastic#134980) [ML] Fix YAMl test to use correct query parameter type (elastic#134999) [Transform] Wait for PIT to close (elastic#134955) Add XPath to XmlUtils (elastic#134923) Fixing conditional processor mutability bugs (elastic#134936) [Transform] Lower loglevel of 3 transform-related error messages from ERROR to WARN (elastic#134985) Unmute pattern text tests. (elastic#134981) Integrate weights into simplified RRF retriever syntax (elastic#132680) Mute org.elasticsearch.xpack.esql.qa.mixed.MixedClusterEsqlSpecIT test {csv-spec:stats.CountDistinctWithConditions} elastic#134993 Update periodic java-ea build to test java 26 pre-release (elastic#134983) Mute org.elasticsearch.xpack.esql.ccq.MultiClusterSpecIT test {csv-spec:stats.CountDistinctWithConditions} elastic#134984 Fix and unmute testIndexSettingProviderPrivateSetting (elastic#134861) Add missing common cat params (elastic#134870) Support querying multiple indices with the simplified RRF retriever (elastic#134822) Allow including semantic field embeddings in _source (elastic#134717) ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

:Data Management/Ingest Node Execution or management of Ingest Pipelines including GeoIP >refactoring Team:Data Management Meta label for data/management team v9.2.0

3 participants