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

   ## Summary
   
   Delegate PyPaimon's existing local hybrid search to one Rust core operation 
on qualified REST data-evolution tables with native reading enabled.
   
   - Forward vector/full-text routes, weights, route limits/options, final 
limit, ranker and accumulated predicates to Rust. Route planning, execution and 
RRF/weighted-score/MRR fusion run in core.
   - Preserve a read view already resolved by multimodal queries, including a 
fixed empty view and retained-tag snapshot metadata. Search and subsequent row 
lookup use the same view.
   - Normalize typed full-text analyzer options through the existing adapter.
   - Qualify unsupported predicate literals before execution and propagate 
execution errors without retrying a second search against a different snapshot.
   - Keep the existing manual route/results/rank APIs for distributed execution 
and the existing Python path for unqualified tables.
   
   This targets Python capabilities already available today and uses Java 
route/filter/coverage/ranking semantics.
   
   ## Dependency
   
   Depends on https://github.com/apache/paimon-rust/pull/1097. This PR remains 
draft until that change is on Rust main. Native CI continues building 
apache/paimon-rust **main**.
   
   ## Verification
   
   - 55 REST native hybrid cases: vector/text/mixed/more-than-four routes, all 
three rankers, route weights/limits/options, scalar indexes and partial 
coverage, refinement and accumulated filters before Top-K, DSL/analyzers, 
authoritative REST snapshots/empty/errors, missing-index errors, fixed 
multimodal read views, retained tags, unsupported literals, query auth and 
manual distributed APIs.
   - Ran the new suite, existing hybrid execution/ranker tests and 
update/merge/commit smoke tests with all five Native switches enabled: **73 
passed, 3 subtests passed**.
   - Confirmed native counters exercised planning, reading, writing, committing 
and each update category. Tests block both Python routing and Python fusion to 
prove the whole-operation core path is used.
   - Existing hybrid execution/ranker tests with Native switches unset: **10 
passed, 3 subtests passed**.
   - Flake8 with the repository configuration, Python 3.6 syntax checks for 
changed production files and `git diff --check`: passed.
   - Two independent review passes; reproduced and repaired loss of 
caller-pinned empty/tag read views, with regressions through public 
`search_hybrid(...).to_arrow()`.
   


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