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]
