Skip to content

Improvements to similarity-based vector search query#15802

Draft
kaivalnp wants to merge 1 commit intoapache:mainfrom
kaivalnp:improve-similarity-vector-search
Draft

Improvements to similarity-based vector search query#15802
kaivalnp wants to merge 1 commit intoapache:mainfrom
kaivalnp:improve-similarity-vector-search

Conversation

@kaivalnp
Copy link
Copy Markdown
Contributor

@kaivalnp kaivalnp commented Mar 6, 2026

Description

#12679 added a query to perform similarity-based vector searches: matching all vectors scoring above a resultSimilarity to the query vector (in Euclidean space, this can be visualized as all vectors within a radius).

  1. Change concurrency model from one-thread-per-slice to one-thread-per-segment
  2. Optimize filtered search by applying conjunction on docs that have vectors
  3. More information in query explanation

1. Change concurrency model from one-thread-per-slice to one-thread-per-segment
2. Optimize filtered search by applying conjunction on docs that have vectors
3. More information in query explanation
@kaivalnp
Copy link
Copy Markdown
Contributor Author

kaivalnp commented Mar 7, 2026

knnPerfTest.py benchmarks (using mikemccand/luceneutil#542) with Cohere v3, 1M docs, 10K queries:

Baseline with -numSearchThread=2:

recall  latency(ms)  netCPU  avgCpuCount     nDoc  searchType  topK  fanout  traversalSimilarity  resultSimilarity  maxConn  beamWidth  quantized  visited  num_segments  filterStrategy  filterSelectivity  overSample  bp-reorder  indexType
 0.956        0.766   1.529        1.996  1000000      RADIUS   N/A     N/A                 0.78               0.8       64        250     8 bits     2912             5            null                N/A       1.000       false       HNSW

Candidate with -numSearchThread=2:

recall  latency(ms)  netCPU  avgCpuCount     nDoc  searchType  topK  fanout  traversalSimilarity  resultSimilarity  maxConn  beamWidth  quantized  visited  num_segments  filterStrategy  filterSelectivity  overSample  bp-reorder  indexType
 0.956        0.734   1.569        2.139  1000000      RADIUS   N/A     N/A                 0.78               0.8       64        250     8 bits     2912             5            null                N/A       1.000       false       HNSW

Baseline with -numSearchThread=8:

recall  latency(ms)  netCPU  avgCpuCount     nDoc  searchType  topK  fanout  traversalSimilarity  resultSimilarity  maxConn  beamWidth  quantized  visited  num_segments  filterStrategy  filterSelectivity  overSample  bp-reorder  indexType
 0.956        0.757   1.515        2.001  1000000      RADIUS   N/A     N/A                 0.78               0.8       64        250     8 bits     2912             5            null                N/A       1.000       false       HNSW

Candidate with -numSearchThread=8:

recall  latency(ms)  netCPU  avgCpuCount     nDoc  searchType  topK  fanout  traversalSimilarity  resultSimilarity  maxConn  beamWidth  quantized  visited  num_segments  filterStrategy  filterSelectivity  overSample  bp-reorder  indexType
 0.956        0.682   1.595        2.337  1000000      RADIUS   N/A     N/A                 0.78               0.8       64        250     8 bits     2912             5            null                N/A       1.000       false       HNSW

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant