dsmiley opened a new pull request, #4191:
URL: https://github.com/apache/solr/pull/4191

   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 `DenseVectorField` support 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 field
   - **`ChildDocTransformer`**: Reconstructs multi-valued vectors from nested 
children back onto the parent doc in search results
   - **`DenseVectorField` / `IndexSchema`**: Minor supporting changes for 
multi-valued awareness
   - **`schema-densevector.xml`**: Added nested doc fields (`_root_`, 
`_nest_path_`), multi-valued vector fields, and dynamic fields for new tests
   - **Ref guide**: Documents multi-valued dense vector indexing syntax and 
behavior
   
   ### branch_9x compatibility fixes
   - **Java 11**: Replaced `instanceof` pattern matching (Java 16+) with 
explicit cast in `NestedUpdateProcessorFactory`
   - **`KnnQParser`**: Ported `childrenOf` and `parents.preFilter` parameters 
from main — required by the new tests but absent on this branch. Uses 
`DiversifyingChildrenFloatKnnVectorQuery` / 
`DiversifyingChildrenByteKnnVectorQuery` from Lucene (already present in Lucene 
9.12.3):
   
     ```
     {!knn f=vector_multivalued topK=3 childrenOf=$allParents 
parents.preFilter=$someParents}[1,1,1,1]
     ```
   
   - **`ChildDocTransformer`**: Fixed byte vector extraction to respect 
`BytesRef.offset` and `BytesRef.length` (the original iterated the entire 
backing array)
   
   <!-- START COPILOT CODING AGENT TIPS -->
   ---
   
   🔒 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.](https://gh.io/cca-advanced-security)


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to