Skip to content

[core] Support Paimon full-text query DSL#6

Merged
JingsongLi merged 2 commits into
mainfrom
codex/paimon-full-text-dsl
Jul 5, 2026
Merged

[core] Support Paimon full-text query DSL#6
JingsongLi merged 2 commits into
mainfrom
codex/paimon-full-text-dsl

Conversation

@JingsongLi

Copy link
Copy Markdown
Contributor

Summary

Add compatibility for Paimon's structured full-text query JSON so Java and Python callers can delegate DSL parsing to paimon-full-text.

Changes

  • Accept Paimon match, phrase, and boolean JSON aliases, including query, phrase, must, should, and must_not forms.
  • Support case-insensitive boolean occur and match operator values in query JSON.
  • Carry match-query option fields with defaults and explicitly reject unsupported non-default fuzzy or prefix expansion options.
  • Allow logical Paimon column names while querying the physical text field stored in index metadata.
  • Add round-trip and search coverage for aliases, boolean forms, and logical column names.

Testing

  • cargo test -p paimon-ftindex-core
  • cargo build --release -p paimon-ftindex-jni -p paimon-ftindex-ffi
  • PAIMON_FTINDEX_LIB_PATH=... PYTHONPATH=... python -m pytest python/tests/test_roundtrip.py -q

@leaves12138 leaves12138 left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed the Paimon full-text query DSL compatibility changes. The implementation keeps the existing JSON forms while adding the Paimon aliases for match/phrase/boolean clauses, validates unsupported match options explicitly, and routes logical Paimon column names to the stored physical text field as described in the PR.

Validation passed locally:

  • cargo fmt --all -- --check
  • cargo test -p paimon-ftindex-core
  • cargo build --release -p paimon-ftindex-jni -p paimon-ftindex-ffi
  • cargo clippy --workspace --all-targets -- -D warnings
  • PAIMON_FTINDEX_LIB_PATH=... PYTHONPATH=... python3 -m pytest python/tests/test_roundtrip.py -q
  • cargo test --workspace

No blocking issues found.

@JingsongLi JingsongLi merged commit e0fef70 into main Jul 5, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants