You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I searched in the issues and found nothing similar.
Motivation
Paimon (Java) supports full-text search and hybrid (vector + full-text) search on primary-key tables, backed by the shared native paimon-ftindex-core engine. The Rust read side already supports primary-key vector search end-to-end; the natural next step is to read the primary-key full-text and hybrid results Java writes, so that Rust / Doris / DataFusion consumers get the same primary-key search capabilities.
Solution
Mirror the Java PK read path, reusing the already-merged PK-vector machinery and depending on paimon-ftindex-core (the same core the Java/Python bindings use), gated behind the fulltext feature:
PK full-text data layer (config options + the shared index/pk source-metadata + bucket-state reconciliation) and read path (PrimaryKeyFullTextScan / PrimaryKeyFullTextBucketSearch / PrimaryKeyFullTextRead, FAST mode), materializing rows by physical position — mirroring Java.
Hybrid search on primary-key tables: fuse vector + full-text routes in physical-position space via a PrimaryKeySearchRanker (RRF / weighted-score / weighted-MRR), mirroring Java HybridSearchBuilderImpl.
This tracks the same effort as #563 and its follow-ups. I have the read path (foundation → data layer → PK full-text read → PK hybrid) implemented locally and passing the full test suite; it is gated on the paimon-ftindex-core crates.io release before the PRs can be marked ready (a git-only dependency blocks cargo package).
Anything else?
Related: PK-vector read tracking (#514) and draft PR #563. Depends on apache/paimon-full-text (paimon-ftindex-core) being published to crates.io.
Search before asking
Motivation
Paimon (Java) supports full-text search and hybrid (vector + full-text) search on primary-key tables, backed by the shared native
paimon-ftindex-coreengine. The Rust read side already supports primary-key vector search end-to-end; the natural next step is to read the primary-key full-text and hybrid results Java writes, so that Rust / Doris / DataFusion consumers get the same primary-key search capabilities.Solution
Mirror the Java PK read path, reusing the already-merged PK-vector machinery and depending on
paimon-ftindex-core(the same core the Java/Python bindings use), gated behind thefulltextfeature:full-textindex archives viapaimon-ftindex-core(draft PR feat(ftindex): read Java full-text archives via paimon-ftindex-core #563 lands the reader foundation).index/pksource-metadata + bucket-state reconciliation) and read path (PrimaryKeyFullTextScan/PrimaryKeyFullTextBucketSearch/PrimaryKeyFullTextRead, FAST mode), materializing rows by physical position — mirroring Java.PrimaryKeySearchRanker(RRF / weighted-score / weighted-MRR), mirroring JavaHybridSearchBuilderImpl.This tracks the same effort as #563 and its follow-ups. I have the read path (foundation → data layer → PK full-text read → PK hybrid) implemented locally and passing the full test suite; it is gated on the
paimon-ftindex-corecrates.io release before the PRs can be marked ready (a git-only dependency blockscargo package).Anything else?
Related: PK-vector read tracking (#514) and draft PR #563. Depends on
apache/paimon-full-text(paimon-ftindex-core) being published to crates.io.Willingness to contribute