Skip to content

HNSW streaming KNN search support#138

Merged
steleal merged 1 commit into
masterfrom
feature/hnsw-knn-streaming
Jul 24, 2026
Merged

HNSW streaming KNN search support#138
steleal merged 1 commit into
masterfrom
feature/hnsw-knn-streaming

Conversation

@maximbogatyrev

Copy link
Copy Markdown

Добавлена поддержка HNSW streaming KNN — поиск без обязательных k и radius в базовых параметрах, с пагинацией через limit/offset на запросе. Соответствует доработке в основном reindexer-репозитории.

  • Разрешён пустой BaseKnnSearchParam при сериализации HNSW-параметров (allowEmpty)
  • Добавлена фабрика KnnParams.base() для streaming-режима
  • Обновлена валидация ef: если k не задан, достаточно ef > 0
  • Для BF/IVF по-прежнему требуется хотя бы один из k или radius
  • Добавлен тест testStreamingKnnHnsw_isOk (reference-запрос с k, streaming с limit/offset, проверка rank и post-filter)

API

// Streaming (без k/radius)
KnnParams.hnsw(KnnParams.base(), ef)
// обычный поиск
KnnParams.hnsw(KnnParams.k(k), ef)

Comment thread src/main/java/ru/rt/restream/reindexer/vector/params/KnnParams.java
@steleal
steleal requested review from evgeniycheban and steleal July 24, 2026 08:37
@steleal
steleal merged commit 69c65fd into master Jul 24, 2026
1 of 2 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.

5 participants