[Feature] Support vector and full-text search in File Index
Mantenedores costumam responder em até 1 dia
@zjw1111 já está trabalhando nisso.
Desde 21/9/2026.
Avaliação
- Dificuldade
- 5/5
- Tempo estimado
- Mais de uma semana
- Facilidade para iniciantes
- 45/100
- Tipo de issue
- Funcionalidade
- Clareza
- Razoavelmente clara
- Status de atividade
- Ativa
- Stack de tecnologia
- cpp
- Domínio
- data-engineering, search
Direção de pesquisa
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.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
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
FileIndexReaderand 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_SCOREcolumn. - 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!
- Linguagem predominante
- C++
- Estrelas
- 65
- Forks
- 31
- Merge médio
- 2d 3h
- PRs com merge (30d)
- 73
Preparar o ambiente
- Sem Dockerfile nem arquivo Docker Compose
- Tem um modelo de pull request
- Ler o guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de apache/paimon-cpp
-
enhancement
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 35/100
apache/paimon-cpp#410 ·
Mantenedores costumam responder em até 1 dia
-
enhancement
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 25/100
apache/paimon-cpp#409 ·
Mantenedores costumam responder em até 1 dia
-
enhancement
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 35/100
apache/paimon-cpp#408 ·
Mantenedores costumam responder em até 1 dia
-
enhancement
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 35/100
apache/paimon-cpp#407 ·
Mantenedores costumam responder em até 1 dia
-
enhancement
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 35/100
apache/paimon-cpp#406 ·
Mantenedores costumam responder em até 1 dia
Todas as issues de apache/paimon-cpp
Issues semelhantes
-
area/ysql kind/bug priority/medium
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
yugabyte/yugabyte-db#34552 ·
Mantenedores costumam responder em até 1 dia
-
bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 86/100
Mantenedores costumam responder em até 1 dia
-
bug
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 94/100
Mantenedores costumam responder em até 1 dia
-
bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 84/100
Mantenedores costumam responder em até 1 dia
-
ai_p2
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 76/100
ClickHouse/ClickHouse#123351 ·
Mantenedores costumam responder em até 1 dia