Numpy Search¶
vector_search_study.numpy_search ¶
Vectorized NumPy exact search implementations.
NumpySortSearcher ¶
Bases: BaseExactSearcher
Score by matrix multiplication and fully sort every score row.
Source code in src/vector_search_study/numpy_search.py
28 29 30 31 32 33 34 35 | |
NumpyArgpartitionSearcher ¶
Bases: BaseExactSearcher
Score by matrix multiplication and partially select exact top-k rows.
Source code in src/vector_search_study/numpy_search.py
38 39 40 41 42 43 44 45 | |
NumpyBlockedSearcher ¶
Bases: BaseExactSearcher
Limit score-matrix memory by searching fixed-size corpus blocks.
Source code in src/vector_search_study/numpy_search.py
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 | |
__init__ ¶
__init__(
corpus: FloatMatrix,
*,
block_size: int = 16384,
objective: SearchObjective
| str = SearchObjective.NORMALIZED_COSINE,
) -> None
Build an index with a fixed number of corpus rows per block.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
corpus
|
FloatMatrix
|
Pre-normalized corpus vectors. |
required |
block_size
|
int
|
Maximum number of corpus rows scored per matrix multiplication. |
16384
|
objective
|
SearchObjective | str
|
Exact-search score convention. |
NORMALIZED_COSINE
|
Source code in src/vector_search_study/numpy_search.py
51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 | |
score_matrix ¶
score_matrix(
queries: FloatMatrix,
corpus: FloatMatrix,
objective: SearchObjective,
) -> FloatMatrix
Return a higher-is-better objective score matrix.
Source code in src/vector_search_study/numpy_search.py
13 14 15 16 17 18 19 20 21 22 23 24 25 | |