SOLR-18074 DenseVectorField multi-valued fields / block-join (BACKPORT)#4191
Open
dsmiley wants to merge 5 commits intoapache:branch_9xfrom
Open
SOLR-18074 DenseVectorField multi-valued fields / block-join (BACKPORT)#4191dsmiley wants to merge 5 commits intoapache:branch_9xfrom
dsmiley wants to merge 5 commits intoapache:branch_9xfrom
Conversation
…and diversifying children query) (apache#4051)
…tedUpdateProcessorFactory
…8074 (diversifying children KNN queries)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
https://issues.apache.org/jira/browse/SOLR-18074
back-port to branch_9x
Implemented by GitHub Copilot. It did absolutely everything, including some tricky parts... amazing!
What follows are Copilot's summary:
Cherry-picks commit 949b28e for SOLR-18074 onto branch_9x, enabling multi-valued
DenseVectorFieldsupport by transparently converting multi-valued vector fields into Lucene block-join child documents at index time.Changes
Cherry-pick (949b28e) — resolved conflicts
NestedUpdateProcessorFactory: Detects multi-valued vector fields at root level and converts each value into a child nested doc under a pseudo-field (NESTED_VECTORS_PSEUDO_FIELD_NAME), removing the original fieldChildDocTransformer: Reconstructs multi-valued vectors from nested children back onto the parent doc in search resultsDenseVectorField/IndexSchema: Minor supporting changes for multi-valued awarenessschema-densevector.xml: Added nested doc fields (_root_,_nest_path_), multi-valued vector fields, and dynamic fields for new testsbranch_9x compatibility fixes
Java 11: Replaced
instanceofpattern matching (Java 16+) with explicit cast inNestedUpdateProcessorFactoryKnnQParser: PortedchildrenOfandparents.preFilterparameters from main — required by the new tests but absent on this branch. UsesDiversifyingChildrenFloatKnnVectorQuery/DiversifyingChildrenByteKnnVectorQueryfrom Lucene (already present in Lucene 9.12.3):ChildDocTransformer: Fixed byte vector extraction to respectBytesRef.offsetandBytesRef.length(the original iterated the entire backing array)🔒 GitHub Advanced Security automatically protects Copilot coding agent pull requests. You can protect all pull requests by enabling Advanced Security for your repositories. Learn more about Advanced Security.