@omendb/omendb 0.0.28 → 0.0.30

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/index.d.ts +32 -3
  2. package/index.js +6 -2
  3. package/package.json +6 -6
package/index.d.ts CHANGED
@@ -24,6 +24,9 @@ export declare class VectorDatabase {
24
24
  *
25
25
  * @param items - Array of {id, vector, metadata?, text?} or {id, vectors, metadata?}
26
26
  * @returns Number of vectors inserted/updated
27
+ *
28
+ * @note Batch inserts (multiple items) skip the WAL for performance. Data is not
29
+ * durable until flush() is called.
27
30
  */
28
31
  set(items: Array<SetItem>): Promise<number>
29
32
  /** Get a vector by ID. */
@@ -124,6 +127,8 @@ export declare class VectorDatabase {
124
127
  isEmpty(): boolean
125
128
  /** Get database statistics. */
126
129
  stats(): StatsResult
130
+ /** Get comprehensive database diagnostics. */
131
+ info(): InfoResult
127
132
  /** Get current ef_search value. */
128
133
  get efSearch(): number
129
134
  /** Set ef_search value. */
@@ -253,9 +258,11 @@ export declare class VectorDatabase {
253
258
  /**
254
259
  * Search for k nearest neighbors.
255
260
  *
256
- * @param query - Query vector (number[] or Float32Array)
261
+ * @param query - Query vector(s): number[] or Float32Array for single-vector stores;
262
+ * number[][] or Float32Array[] for multi-vector stores
257
263
  * @param k - Number of results to return
258
- * @param options - Optional search options: {filter?, ef?, maxDistance?}
264
+ * @param options - Optional search options. Single-vector: {filter?, ef?, maxDistance?}.
265
+ * Multi-vector: {rerank?, rerankFactor?}
259
266
  * @returns Array of {id, distance, score, metadata}
260
267
  *
261
268
  * @example
@@ -266,9 +273,12 @@ export declare class VectorDatabase {
266
273
  * // With options
267
274
  * db.search([1, 0, 0, 0], 10, { filter: { category: "A" }, ef: 200 });
268
275
  * db.search([1, 0, 0, 0], 10, { maxDistance: 0.5 });
276
+ *
277
+ * // Multi-vector search
278
+ * db.search([[0.1, 0.2], [0.3, 0.4]], 5, { rerank: true, rerankFactor: 8 });
269
279
  * ```
270
280
  */
271
- search(query: Array<number> | Float32Array | string, k: number, options?: { filter?: Record<string, unknown>; ef?: number; maxDistance?: number } | undefined): Promise<Array<SearchResult>>
281
+ search(query: Array<number> | Float32Array | string | Array<Array<number>> | Array<Float32Array>, k: number, options?: { filter?: Record<string, unknown>; ef?: number; maxDistance?: number; rerank?: boolean; rerankFactor?: number } | undefined): Promise<Array<SearchResult>>
272
282
  /**
273
283
  * Search multi-vector store with query tokens.
274
284
  *
@@ -373,6 +383,25 @@ export interface HybridSearchResult {
373
383
  semanticScore?: number
374
384
  }
375
385
 
386
+ export interface InfoResult {
387
+ vectorCount: number
388
+ deletedCount: number
389
+ dimensions: number
390
+ metric: string
391
+ frozenSegmentCount: number
392
+ mutableSegmentVectors: number
393
+ vectorBytes: number
394
+ graphBytes: number
395
+ totalMemoryBytes: number
396
+ walEntries: number
397
+ isPersistent: boolean
398
+ hnswM: number
399
+ hnswEfConstruction: number
400
+ hnswEfSearch: number
401
+ quantization: boolean
402
+ segmentCapacity: number
403
+ }
404
+
376
405
  /**
377
406
  * Open or create a vector database.
378
407
  *
package/index.js CHANGED
@@ -314,8 +314,12 @@ class VectorDatabase {
314
314
  return this._native.optimize();
315
315
  }
316
316
 
317
- mergeFrom(other) {
318
- return this._native.mergeFrom(other._native);
317
+ mergeFrom(other, keyPrefix) {
318
+ return this._native.mergeFrom(other._native, keyPrefix);
319
+ }
320
+
321
+ info() {
322
+ return this._native.info();
319
323
  }
320
324
 
321
325
  ids() {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@omendb/omendb",
3
- "version": "0.0.28",
3
+ "version": "0.0.30",
4
4
  "description": "Fast embedded vector database with HNSW + ACORN-1 filtered search",
5
5
  "main": "index.js",
6
6
  "types": "index.d.ts",
@@ -50,10 +50,10 @@
50
50
  "omendb.node"
51
51
  ],
52
52
  "optionalDependencies": {
53
- "@omendb/omendb-darwin-x64": "0.0.28",
54
- "@omendb/omendb-darwin-arm64": "0.0.28",
55
- "@omendb/omendb-linux-x64-gnu": "0.0.28",
56
- "@omendb/omendb-linux-arm64-gnu": "0.0.28",
57
- "@omendb/omendb-win32-x64-msvc": "0.0.28"
53
+ "@omendb/omendb-darwin-x64": "0.0.30",
54
+ "@omendb/omendb-darwin-arm64": "0.0.30",
55
+ "@omendb/omendb-linux-x64-gnu": "0.0.30",
56
+ "@omendb/omendb-linux-arm64-gnu": "0.0.30",
57
+ "@omendb/omendb-win32-x64-msvc": "0.0.30"
58
58
  }
59
59
  }