Summary
cuvs-lucene always passes a 1 × dim query matrix to cuVS. CagraSearchParams.maxQueries is never set. cuVS supports batched search natively; the Lucene layer does not expose it.
Reproducer
From a cuvs-lucene checkout:
rg 'deviceBuilder\([^,]+, 1,' src/main/java/com/nvidia/cuvs/lucene/
Both GPU search paths hardcode batch size 1:
GPUKnnFloatVectorQuery.java (~line 195) — multi-segment path
CuVS2510GPUVectorsReader.java (~line 458) — per-segment fallback
Neither calls CagraSearchParams.Builder.withMaxQueries(n) for n > 1.
Runtime check: run any GPUKnnFloatVectorQuery search; one cuVS cagraSearch call is issued per Lucene query. MultiPartitionCagraSearch batches segments, not query vectors — still one query per call.
Expected vs actual
- Expected: option to search N query vectors in one GPU call (as cuVS Java API allows via N-row
CuVSMatrix + maxQueries).
- Actual: one query vector per search; throughput scaling in benchmarks uses
queryThreads (N concurrent batch-1 searches).
Workaround
Use multiple search threads (queryThreads > 1). Not equivalent to in-kernel query batching.
Environment
cuvs-lucene 25.10+, CuVS2510GPUSearchCodec, GPUKnnFloatVectorQuery.
Summary
cuvs-lucene always passes a 1 × dim query matrix to cuVS.
CagraSearchParams.maxQueriesis never set. cuVS supports batched search natively; the Lucene layer does not expose it.Reproducer
From a cuvs-lucene checkout:
rg 'deviceBuilder\([^,]+, 1,' src/main/java/com/nvidia/cuvs/lucene/Both GPU search paths hardcode batch size 1:
GPUKnnFloatVectorQuery.java(~line 195) — multi-segment pathCuVS2510GPUVectorsReader.java(~line 458) — per-segment fallbackNeither calls
CagraSearchParams.Builder.withMaxQueries(n)forn > 1.Runtime check: run any
GPUKnnFloatVectorQuerysearch; one cuVScagraSearchcall is issued per Lucene query.MultiPartitionCagraSearchbatches segments, not query vectors — still one query per call.Expected vs actual
CuVSMatrix+maxQueries).queryThreads(N concurrent batch-1 searches).Workaround
Use multiple search threads (
queryThreads > 1). Not equivalent to in-kernel query batching.Environment
cuvs-lucene 25.10+,
CuVS2510GPUSearchCodec,GPUKnnFloatVectorQuery.