ChrisHegarty commented on PR #14131:
URL: https://github.com/apache/lucene/pull/14131#issuecomment-2659128547

   I just committed a rewrite for the cuVS format implementation.
   
   After the rewrite all the BaseKnnVectorsFormatTestCase tests pass. There are 
still some lurking intermittent failures, but the tests pass successfully the 
majority of the time.
   
   Summary of the most significant changes:
   
   1. Use the flat vectors reader/writer to support the raw float32 vectors and 
ordinal to docId mapping. This is similar to how HNSW is supported in Lucene. 
And keeps the code aligned with how other formats are layered atop each other.
   2. The cuVS indices (Cagra, brute force, and HNSW) are stored directly in 
the format, so can be mmap'ed directly.
   3. Merges are physical, all raw vectors are retrieved and used to create new 
cuVS indices.
   4. A standard KnnCollector is used, no need for a special one for cuVS, 
unless one wants to customise some very specific parameters.
   
   A number of workarounds have been put in place, which will eventually be 
lifted.
   
   1. pre-filter and deleted docs over sample the topK, since the cuvs-java do 
not yet support a pre-filter.
   2. Ignore Cagra failures indexing with small numbers of docs, fail over to 
just brute force.
   3. We need to move to the cuvs-java merge api, to avoid bringing the vectors 
on-heap during merge.


-- 
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: issues-unsubscr...@lucene.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org
For additional commands, e-mail: issues-h...@lucene.apache.org

Reply via email to