Skip to content

Commit 40e1a22

Browse files
committed
Publish v0.2.0
1 parent 42132a0 commit 40e1a22

2 files changed

Lines changed: 11 additions & 2 deletions

File tree

CHANGELOG.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,14 @@
11
# Changelog
22

3+
## [0.2.0]
4+
- `searchVectors` accepts arrays for `source`, `metadata`, and `binary` to query across multiple parquet files in one call; results are heap-merged into a global top-K and each carries a `sourceIndex`. Single-source callers are unchanged
5+
- `writeVectors` auto-tunes `binary` and `clusters` from the input size: binary turns on at N >= 10000 and `clusters` defaults to round(sqrt(N)/2) when both are left unset. Passing either flag explicitly opts out of that knob's auto behavior
6+
- `normalize` now defaults to `true` in `writeVectors`. Cosine on normalized vectors reduces to dot product; pass `normalize: false` to opt out for magnitude-sensitive dot/euclidean metrics
7+
- `writeVectors` gains a streaming path: when `binary` is set and clustering is off, it flushes one row group at a time, lowering peak memory from O(N) to O(row group)
8+
- The default cluster `probe` is capped at 96 lists so the probed-list count stops growing with N once recall saturates; an explicit `probe` bypasses the cap
9+
- Fix clustered binary (Hamming) scan that could throw a RangeError or score the wrong bytes when a cluster's rows span multiple parquet pages
10+
- Drop the redundant `hypvector.count` KV metadata; readers take the count from the parquet footer's row count
11+
312
## [0.1.1]
413
- Add `prefetchBinary` to load the binary column into memory once at startup; pass the result as `binary` to `searchVectors` to skip phase-1 fetches on every subsequent query
514
- When clustering is enabled, write one parquet row group per cluster so phase-1 binary scans and phase-2 candidate fetches stay within a single column chunk per cluster

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "hypvector",
3-
"version": "0.1.1",
3+
"version": "0.2.0",
44
"description": "Vector similarity search directly over Parquet files",
55
"author": "Hyperparam",
66
"homepage": "https://hyperparam.app",
@@ -53,7 +53,7 @@
5353
"@types/node": "26.0.0",
5454
"@vitest/coverage-v8": "4.1.9",
5555
"eslint": "9.39.4",
56-
"eslint-plugin-jsdoc": "63.0.6",
56+
"eslint-plugin-jsdoc": "63.0.7",
5757
"typescript": "6.0.3",
5858
"vitest": "4.1.9"
5959
}

0 commit comments

Comments
 (0)