[Feature] Support vector and full-text search in File Index

オープン
#361 コメント 0 件 リアクション 0 件 担当者 1 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
5/5
見積もり時間
1週間以上
初心者へのやさしさ
45/100
issue の種類
機能追加
明瞭さ
おおむね明確
活発さ
活発
技術スタック
cpp

調査の方向性

Start with the existing File Index write path, container format, readers, and the work from #173. Trace how read-context requests reach FileIndexReader and how selected row positions reach the data-file reader. Done means vector and full-text indexes round-trip through write/read paths, support the listed edge cases, and preserve per-file TopK score alignment.

索引モデルが issue の本文から書いたものです。

説明

enhancement
Search before asking
  • I searched in the issues and found nothing similar.
Motivation

Paimon C++ has File Index infrastructure for per-data-file indexes, but does not yet provide an end-to-end File Index search path for vector similarity or full-text queries. Applications should be able to build these indexes with their data files and use them to select matching file-local rows without requiring a Global Index.

Solution

Add Vector Search and Full Text Search support to File Index:

  • Build and serialize vector and full-text index artifacts through the existing File Index write path and container format, and open them through File Index readers.
  • Add file-local search visits to FileIndexReader and route search requests from the read context to the appropriate index reader.
  • Apply returned file-local row positions to the data-file reader. Vector Search should return a TopK result independently for each data file and keep scores aligned with selected rows; expose scores through an explicitly projected _INDEX_SCORE column.
  • Support Full Text Search row selection. Score output for Full Text Search can be handled separately.
  • Add focused tests for write/read round trips, null or empty indexes, multiple data files and batches, score alignment, and columns with more than one File Index type.

The initial implementation can target append-only/raw-file reads. Predicate combination, deletion-vector and row-range pre-filtering, Merge-on-Read/Data Evolution, and cross-file global TopK should be handled in follow-up work so that filtering does not silently change TopK semantics.

Anything else?

This builds on the File Index writing work in #173; it is specifically about vector/full-text index implementations and their search read path.

Are you willing to submit a PR?
  • I'm willing to submit a PR!
主要言語
C++
スター
65
フォーク
29
平均マージ
2日 30分
マージ済み PR(30日)
77

コントリビューションガイド

コントリビューションガイドを開く

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

apache/paimon-cpp のほかの issue

apache/paimon-cpp の issue をすべて見る

似ている issue

C++ の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。