JingsongLi opened a new pull request, #10476:
URL: https://github.com/apache/paimon/pull/10476

   ## Purpose
   
   Use Rust core for the local vector-search capabilities PyPaimon already 
supports on REST tables. Single-vector searches delegate for DE and configured 
PK vector indexes; batch delegation uses PyPaimon's existing DE result API.
   
   Depends on https://github.com/apache/paimon-rust/pull/1087. This PR is Draft 
until that binding API is available on Rust main. Native CI continues to 
install Apache paimon-rust main.
   
   ## Changes
   
   - Reuse the resolved Native table and REST FileIO context for local search. 
Rust owns planning, scalar pre-filtering, index evaluation, raw scoring, Top-K 
and refinement.
   - Convert Native metadata into the existing scored global-row-ID and PK 
physical-position result classes. PK split bytes retain their source snapshot, 
deletion metadata, ranges and aligned scores.
   - Keep optional-backend fallback, explicit disable, query-auth rejection, 
fork-safety errors and unsupported I/O contexts consistent with other Native 
readers.
   - Align the Python reader with Java 
`AbstractDataEvolutionVectorRead.prepareSplits`: when a scalar filter cannot be 
evaluated by an index, search its covered ranges from the data rather than 
silently excluding those rows. Validate persisted metrics for every rerouted 
shard.
   - Serialize VECTOR types exactly as Java does, encoding nullability in the 
`type` string and omitting the extra `nullable` member that blocked Native REST 
loading.
   - Update a stale PK sharding test to reflect the already merged Native 
sorted-index planning ownership.
   
   ## Tests
   
   Real REST regression cases compare Python and Native single/batch results 
for all three metrics, scalar/partition predicates, indexed and uncovered 
ranges, FAST/FULL/DETAIL, empty results, Java-produced PK indexes, refinement, 
result materialization, snapshot-pinned scan/read reuse, mixed metric failures 
and fallback behavior.
   
   Classic vector regression suites, Native read/write/update/commit 
regressions, flake8 and Python 3.6 syntax checks are included in local 
verification. Final Native suite results will be recorded below when the run 
completes.
   
   ## Scope
   
   This enables existing local search APIs. Distributed Ray scan/read and 
PyPaimon's PK batch API retain their current behavior. No new dependencies or 
CI ref pins are added.
   


-- 
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]

Reply via email to