@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 +12 -16
- package/package.json +1 -1
- package/velesdb_wasm.d.ts +927 -794
- package/velesdb_wasm.js +1927 -1709
- package/velesdb_wasm_bg.wasm +0 -0
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; //
|
|
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}>;
|
|
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
|
-
//
|
|
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
|
|
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/
|
|
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,
|
|
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/
|
|
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