@wiscale/velesdb-wasm 1.4.1 → 1.5.1

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.
package/README.md CHANGED
@@ -89,18 +89,14 @@ class VectorStore {
89
89
 
90
90
  // Methods
91
91
  insert(id: bigint, vector: Float32Array): void;
92
- insert_with_payload(id: bigint, vector: Float32Array, payload: object): void; // v0.8.5+
93
- insert_batch(batch: Array<[bigint, number[]]>): void; // Bulk insert
92
+ insert_with_payload(id: bigint, vector: Float32Array, payload: object): void; insert_batch(batch: Array<[bigint, number[]]>): void; // Bulk insert
94
93
  search(query: Float32Array, k: number): Array<[bigint, number]>;
95
- search_with_filter(query: Float32Array, k: number, filter: object): Array<{id, score, payload}>; // v0.8.5+
96
- text_search(query: string, k: number, field?: string): Array<{id, score, payload}>; // v0.8.5+
97
- get(id: bigint): {id, vector, payload} | null; // v0.8.5+
98
- remove(id: bigint): boolean;
94
+ search_with_filter(query: Float32Array, k: number, filter: object): Array<{id, score, payload}>; text_search(query: string, k: number, field?: string): Array<{id, score, payload}>; get(id: bigint): {id, vector, payload} | null; remove(id: bigint): boolean;
99
95
  clear(): void;
100
96
  reserve(additional: number): void; // Pre-allocate memory
101
97
  memory_usage(): number; // Accurate for each storage mode
102
98
 
103
- // ⭐ NEW v1.1.0
99
+ //
104
100
  multi_query_search(vectors: Float32Array, num_vectors: number, k: number, strategy?: string, rrf_k?: number): Array<[bigint, number]>;
105
101
  hybrid_search(vector: Float32Array, text_query: string, k: number, vector_weight?: number, field?: string): Array<{id, score, payload}>;
106
102
  batch_search(vectors: Float32Array, num_vectors: number, k: number): Array<Array<[bigint, number]>>;
@@ -111,7 +107,7 @@ class VectorStore {
111
107
  }
112
108
  ```
113
109
 
114
- ### Filter Format (v0.8.5+)
110
+ ### Filter Format
115
111
 
116
112
  ```javascript
117
113
  // Equality filter
@@ -256,11 +252,12 @@ The WASM build is optimized for client-side use cases but has some limitations c
256
252
  |---------|------|-------------|
257
253
  | Vector search (NEAR) | ✅ | ✅ |
258
254
  | Metadata filtering | ✅ | ✅ |
255
+ | Hybrid search (vector + BM25) | ✅ | ✅ |
256
+ | Full-text search (BM25) | ✅ | ✅ |
257
+ | Multi-query fusion (MQG) | ✅ | ✅ |
258
+ | Batch search | ✅ | ✅ |
259
259
  | Full VelesQL queries | ❌ | ✅ |
260
- | Hybrid search (vector + BM25) | ❌ | ✅ |
261
260
  | Knowledge Graph operations | ❌ | ✅ |
262
- | MATCH clause (full-text) | ❌ | ✅ |
263
- | NEAR_FUSED (multi-query fusion) | ❌ | ✅ |
264
261
  | JOIN operations | ❌ | ✅ |
265
262
  | Aggregations (GROUP BY) | ❌ | ✅ |
266
263
  | Persistence | IndexedDB | Disk (mmap) |
@@ -289,8 +286,7 @@ const results = store.search_with_filter(queryVector, 10, {
289
286
 
290
287
  Consider using the [REST server](https://github.com/cyberlife-coder/VelesDB) if you need:
291
288
 
292
- - **Full VelesQL support** - Complex SQL-like queries
293
- - **Hybrid search** - Combine semantic + keyword search
289
+ - **Full VelesQL support** - Complex SQL-like queries with JOINs and aggregations
294
290
  - **Knowledge Graph** - Entity relationships and graph traversal
295
291
  - **Large datasets** - More than 100K vectors
296
292
  - **Server-side processing** - Centralized vector database
@@ -304,15 +300,15 @@ const store = new VectorStore(768, 'cosine');
304
300
  const results = store.search(query, 10);
305
301
 
306
302
  // REST (server-side) - using fetch
307
- const response = await fetch('http://localhost:8080/v1/collections/docs/search', {
303
+ const response = await fetch('http://localhost:8080/collections/docs/search', {
308
304
  method: 'POST',
309
305
  headers: { 'Content-Type': 'application/json' },
310
- body: JSON.stringify({ vector: query, limit: 10 })
306
+ body: JSON.stringify({ vector: query, top_k: 10 })
311
307
  });
312
308
  const results = await response.json();
313
309
 
314
310
  // REST with VelesQL
315
- const response = await fetch('http://localhost:8080/v1/query', {
311
+ const response = await fetch('http://localhost:8080/query', {
316
312
  method: 'POST',
317
313
  headers: { 'Content-Type': 'application/json' },
318
314
  body: JSON.stringify({
package/package.json CHANGED
@@ -5,7 +5,7 @@
5
5
  "Julien Lange <contact@wiscale.fr>"
6
6
  ],
7
7
  "description": "VelesDB for WebAssembly - Vector search in the browser",
8
- "version": "1.4.1",
8
+ "version": "1.5.1",
9
9
  "license": "SEE LICENSE IN ../../LICENSE",
10
10
  "repository": {
11
11
  "type": "git",