endee 1.8.0-dev.1 → 1.8.0-dev.3

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
@@ -23,11 +23,12 @@ multi-vectors — so a single object can be searched many ways.
23
23
  5. [Insert objects (combining vector types)](#insert-objects-combining-vector-types)
24
24
  6. [Search](#search)
25
25
  - [The unified field shape](#the-unified-field-shape)
26
- - [Per-field `weight` and `ef_search`](#per-field-weight-and-ef_search)
26
+ - [Per-field `limit` and `ef_search`](#per-field-limit-and-ef_search)
27
27
  - [Single field](#single-field-search)
28
28
  - [Multi-field](#multi-field-search)
29
29
  - [Fusing results with `rerank()`](#fusing-results-with-rerank)
30
30
  - [Filters](#filtered-search)
31
+ - [Filter tuning](#filter-tuning)
31
32
  7. [Object operations](#object-operations)
32
33
  8. [Collection maintenance](#collection-maintenance)
33
34
  9. [Backups](#backups)
@@ -92,8 +93,7 @@ await collection.upsert([
92
93
 
93
94
  // 3. Search the dense field. `results` is keyed by field name.
94
95
  const res = await collection.search({
95
- fields: { embedding: { query: Array(8).fill(0.2) } },
96
- limit: 5,
96
+ fields: { embedding: { query: Array(8).fill(0.2), limit: 5 } },
97
97
  });
98
98
  for (const h of res.results.embedding) {
99
99
  console.log(h.id, h.similarity, h.meta);
@@ -252,14 +252,14 @@ Notes:
252
252
 
253
253
  ## Search
254
254
 
255
- `collection.search({ fields, limit, filter })` queries one or more fields **in a
255
+ `collection.search({ fields, filter })` queries one or more fields **in a
256
256
  single request** and **always returns one ranked list per field**, keyed by field
257
257
  name. To collapse those lists into a single ranked list, fuse them with
258
258
  [`rerank()`](#fusing-results-with-rerank).
259
259
 
260
260
  ### The unified field shape
261
261
 
262
- Every field is queried with the **same object form** — `{ query, weight?, ef_search? }`.
262
+ Every field is queried with the **same object form** — `{ query, limit?, ef_search? }`.
263
263
  There is no bare-value shorthand; `query` is required. The `query` value matches
264
264
  the field's type:
265
265
 
@@ -278,20 +278,19 @@ Each result **hit** is:
278
278
  > Search results carry `meta`/`filter` but **not** the stored vectors. To get the
279
279
  > vectors back, use [`getObjects`](#object-operations).
280
280
 
281
- ### Per-field `weight` and `ef_search`
281
+ ### Per-field `limit` and `ef_search`
282
282
 
283
- `weight` is the **fraction of the request `limit` to draw from that field**: the
284
- effective per-field limit is `ceil(weight * limit)`. Omit `weight` to use the full
285
- `limit`. `ef_search` tunes that field's HNSW recall/latency.
283
+ `limit` is the **max number of hits to return for that field** (defaults to
284
+ `10`). It's set per field, so each field draws independently. `ef_search` tunes
285
+ that field's HNSW recall/latency.
286
286
 
287
287
  ```typescript
288
- // limit 50 embedding fetches ceil(0.7*50)=35, keywords fetches ceil(0.3*50)=15
288
+ // embedding returns up to 35 hits, keywords up to 15 — each independent
289
289
  await collection.search({
290
290
  fields: {
291
- embedding: { query: Array(8).fill(0.2), weight: 0.7, ef_search: 256 },
292
- keywords: { query: { indices: [3, 17], values: [0.8, 0.4] }, weight: 0.3 },
291
+ embedding: { query: Array(8).fill(0.2), limit: 35, ef_search: 256 },
292
+ keywords: { query: { indices: [3, 17], values: [0.8, 0.4] }, limit: 15 },
293
293
  },
294
- limit: 50,
295
294
  });
296
295
  ```
297
296
 
@@ -302,8 +301,7 @@ by that field name:
302
301
 
303
302
  ```typescript
304
303
  const res = await collection.search({
305
- fields: { embedding: { query: Array(8).fill(0.2) } },
306
- limit: 3,
304
+ fields: { embedding: { query: Array(8).fill(0.2), limit: 3 } },
307
305
  });
308
306
  res.results.embedding;
309
307
  // [
@@ -313,14 +311,12 @@ res.results.embedding;
313
311
 
314
312
  // sparse
315
313
  await collection.search({
316
- fields: { keywords: { query: { indices: [3, 17], values: [0.8, 0.4] } } },
317
- limit: 3,
314
+ fields: { keywords: { query: { indices: [3, 17], values: [0.8, 0.4] }, limit: 3 } },
318
315
  });
319
316
 
320
317
  // multi-vector
321
318
  await collection.search({
322
- fields: { colbert: { query: [Array(8).fill(0.1), Array(8).fill(0.2)] } },
323
- limit: 3,
319
+ fields: { colbert: { query: [Array(8).fill(0.1), Array(8).fill(0.2)], limit: 3 } },
324
320
  });
325
321
  ```
326
322
 
@@ -333,10 +329,9 @@ like, or hand them to [`rerank()`](#fusing-results-with-rerank).
333
329
  ```typescript
334
330
  const res = await collection.search({
335
331
  fields: {
336
- embedding: { query: [0.2, 0.2, 0.3, 0.3] },
337
- keywords: { query: { indices: [3, 17], values: [0.8, 0.4] } },
332
+ embedding: { query: [0.2, 0.2, 0.3, 0.3], limit: 2 },
333
+ keywords: { query: { indices: [3, 17], values: [0.8, 0.4] }, limit: 2 },
338
334
  },
339
- limit: 2,
340
335
  });
341
336
  ```
342
337
 
@@ -370,20 +365,19 @@ res.results.keywords; // that field's ranked hits
370
365
 
371
366
  ### Fusing results with `rerank()`
372
367
 
373
- `rerank(searchResults, { name, limit, fieldWeights })` fuses the per-field lists
374
- from `search()` into **one ranked list** using Reciprocal Rank Fusion. It's a
375
- standalone function — run `search()`, then pass its result to `rerank()`:
368
+ `rerank(searchResults, { name, limit, fieldWeights, rrfK })` fuses the per-field
369
+ lists from `search()` into **one ranked list** using Reciprocal Rank Fusion. It's
370
+ a standalone function — run `search()`, then pass its result to `rerank()`:
376
371
 
377
372
  ```typescript
378
373
  import { rerank } from 'endee';
379
374
 
380
375
  const res = await collection.search({
381
376
  fields: {
382
- embedding: { query: [0.2, 0.2, 0.3, 0.3] },
383
- keywords: { query: { indices: [3, 17], values: [0.8, 0.4] } },
384
- colbert: { query: [Array(8).fill(0.1), Array(8).fill(0.2)] },
377
+ embedding: { query: [0.2, 0.2, 0.3, 0.3], limit: 50 },
378
+ keywords: { query: { indices: [3, 17], values: [0.8, 0.4] }, limit: 50 },
379
+ colbert: { query: [Array(8).fill(0.1), Array(8).fill(0.2)], limit: 50 },
385
380
  },
386
- limit: 50,
387
381
  });
388
382
 
389
383
  const fused = rerank(res, {
@@ -409,9 +403,11 @@ const fused = rerank(res, {
409
403
  }
410
404
  ```
411
405
 
412
- `name` selects the algorithm (only `"rrf"` is supported today). Each fused hit
413
- keeps the `meta`/`filter` from its per-field hit; `similarity` is replaced with
414
- the RRF score (sum of `weight / (rrfK + rank)` across the fields it appeared in).
406
+ `name` selects the algorithm (only `"rrf"` is supported today). `rrfK` is the RRF
407
+ rank constant (default `60`); a larger value flattens the contribution of top
408
+ ranks, a smaller value sharpens it. Each fused hit keeps the `meta`/`filter` from
409
+ its per-field hit; `similarity` is replaced with the RRF score (sum of
410
+ `weight / (rrfK + rank)` across the fields it appeared in).
415
411
 
416
412
  **Summary of return shapes**
417
413
 
@@ -426,14 +422,40 @@ the RRF score (sum of `weight / (rrfK + rank)` across the fields it appeared in)
426
422
 
427
423
  ```typescript
428
424
  await collection.search({
429
- fields: { embedding: { query: Array(8).fill(0.2) } },
430
- limit: 5,
425
+ fields: { embedding: { query: Array(8).fill(0.2), limit: 5 } },
431
426
  filter: [{ category: { $eq: 'electronics' } }],
432
427
  });
433
428
  ```
434
429
 
435
430
  Operators: `$eq`, `$in`, `$range`, `$gt`, `$gte`, `$lt`, `$lte` (see [Reference](#reference)).
436
431
 
432
+ ### Filter tuning
433
+
434
+ Two optional params tune the speed/recall trade-off of **filtered** queries.
435
+ They're sent to the server under `filter_params` and ignored on unfiltered
436
+ searches.
437
+
438
+ ```typescript
439
+ await collection.search({
440
+ fields: { embedding: { query: Array(8).fill(0.2), limit: 10 } },
441
+ filter: [{ category: { $eq: 'rare' } }],
442
+ prefilterCardinalityThreshold: 5000, // default 10,000; range 1,000–1,000,000
443
+ filterBoostPercentage: 25, // default 0; max 100
444
+ });
445
+ ```
446
+
447
+ **`prefilterCardinalityThreshold`** — the cardinality below which the search
448
+ switches from HNSW filtered search to brute-force prefiltering. When very few
449
+ vectors match the filter, scanning the matched subset directly is faster and
450
+ more accurate than HNSW graph traversal. **Raising** it makes prefiltering kick
451
+ in more often (favors the exhaustive scan); **lowering** it favors HNSW graph
452
+ search (favors speed on large datasets).
453
+
454
+ **`filterBoostPercentage`** — in HNSW filtered search, candidates that fail the
455
+ filter are discarded, which can leave fewer than `limit` results. This expands
456
+ the internal candidate pool before filtering to compensate. `0` = no boost,
457
+ `100` = doubles the pool.
458
+
437
459
  ---
438
460
 
439
461
  ## Object operations
@@ -466,9 +488,15 @@ await collection.updateFilters([{ id: 'p2', filter: { category: 'sale' } }]); //
466
488
  ```typescript
467
489
  await collection.describe(); // { name, fields, created_at, layout_version }
468
490
 
469
- // Rebuild a field's HNSW graph with new M / ef_con (async).
470
- await collection.rebuild({ field: 'embedding', m: 24, efCon: 200 }); // { status: "in_progress", ... }
471
- await collection.rebuildStatus(); // { percent_complete, ... }
491
+ // Rebuild one or more dense fields' HNSW graphs in a single async call.
492
+ // Pass a list of field specs; only M/ef_con may change. Sparse fields are skipped server-side.
493
+ await collection.rebuild([
494
+ { field: 'embedding', m: 20, efCon: 200 },
495
+ { field: 'colbert', m: 12, efCon: 120 },
496
+ ]); // { fields_total: 2, total_objects: ..., status: "in_progress" }
497
+
498
+ // Poll progress; reports the latest rebuilt field plus overall counts.
499
+ await collection.rebuildStatus(); // { field, fields_done, fields_total, percent_complete, status, ... }
472
500
 
473
501
  // Defragment storage in place.
474
502
  await collection.shrink(); // { status: "ok", reclaimed_bytes: <int> }
@@ -631,7 +659,7 @@ import type {
631
659
  FullObject,
632
660
  CollectionMetadata,
633
661
  UpdateFilterEntry,
634
- RebuildOptions,
662
+ RebuildFieldSpec,
635
663
  DatabaseInfo,
636
664
  TokenInfo,
637
665
  DbType,
@@ -6,7 +6,7 @@
6
6
  * `Endee.getCollection()` (or after `Endee.createCollection()`).
7
7
  */
8
8
  import { type AxiosInstance } from 'axios';
9
- import { type CollectionMetadata, type FieldDefinition, type FullObject, type ObjectInput, type RebuildOptions, type SearchOptions, type SearchResponse, type UpdateFilterEntry } from './types/index.js';
9
+ import { type CollectionMetadata, type FieldDefinition, type FullObject, type ObjectInput, type RebuildFieldSpec, type SearchOptions, type SearchResponse, type UpdateFilterEntry } from './types/index.js';
10
10
  export declare class Collection {
11
11
  readonly name: string;
12
12
  private token;
@@ -38,10 +38,15 @@ export declare class Collection {
38
38
  /**
39
39
  * Search the collection across one or more fields in a single request.
40
40
  *
41
- * Each field is queried with the unified config `{ query, weight?, ef_search? }`,
42
- * where `weight` is the fraction of `limit` drawn from that field. The result
43
- * is always one ranked list per field: `{ results: { [field]: SearchHit[] } }`.
44
- * Use `rerank()` to fuse these into a single ranked list.
41
+ * Each field is queried with the unified config `{ query, limit?, ef_search? }`,
42
+ * where `limit` is the max number of hits to return for that field (defaults
43
+ * to `DEFAULT_TOP_K`). The result is always one ranked list per field:
44
+ * `{ results: { [field]: SearchHit[] } }`. Use `rerank()` to fuse these into a
45
+ * single ranked list.
46
+ *
47
+ * For filtered searches, `prefilterCardinalityThreshold` and
48
+ * `filterBoostPercentage` tune the speed/recall trade-off; when either is
49
+ * set they're sent to the server as `filter_params`.
45
50
  */
46
51
  search(options: SearchOptions): Promise<SearchResponse>;
47
52
  /** Delete a single object by id. Returns `{ deleted: "<id>" }`. */
@@ -64,11 +69,12 @@ export declare class Collection {
64
69
  /** Return collection metadata: `{ name, fields, created_at, layout_version }`. */
65
70
  describe(): Promise<CollectionMetadata>;
66
71
  /**
67
- * Rebuild a vector field's HNSW graph with new M / ef_con (async).
72
+ * Rebuild one or more dense vector fields' HNSW graphs (async).
68
73
  * Only M/ef_con may change; dimension/space_type/precision are immutable.
69
- * Poll progress with `rebuildStatus()`.
74
+ * Any sparse field in the list is skipped server-side. Poll progress with
75
+ * `rebuildStatus()`.
70
76
  */
71
- rebuild(options: RebuildOptions): Promise<Record<string, unknown>>;
77
+ rebuild(fields: RebuildFieldSpec[]): Promise<Record<string, unknown>>;
72
78
  /** Poll rebuild progress. */
73
79
  rebuildStatus(): Promise<Record<string, unknown>>;
74
80
  /** Defragment the collection's storage in place. */
@@ -1 +1 @@
1
- {"version":3,"file":"collection.d.ts","sourceRoot":"","sources":["../src/collection.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAc,EAAE,KAAK,aAAa,EAAE,MAAM,OAAO,CAAC;AAelD,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,eAAe,EAEpB,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,cAAc,EAEnB,KAAK,aAAa,EAClB,KAAK,cAAc,EAEnB,KAAK,iBAAiB,EACvB,MAAM,kBAAkB,CAAC;AA2S1B,qBAAa,UAAU;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,KAAK,CAAS;IACtB,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,IAAI,CAAgB;gBAG1B,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,kBAAkB,EAC5B,IAAI,CAAC,EAAE,aAAa;IAWtB,QAAQ,IAAI,MAAM;IAIlB,2EAA2E;IAC3E,OAAO,CAAC,UAAU;IAalB,OAAO,CAAC,WAAW;IAMnB;;;;;;;;;;;;;OAaG;IACG,MAAM,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IA6GtE;;;;;;;OAOG;IACG,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC;IAkF7D,mEAAmE;IAC7D,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAehE;;;OAGG;IACG,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAgCtD;;;OAGG;IACG,cAAc,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAmB9F;;;OAGG;IACG,aAAa,CAAC,OAAO,EAAE,iBAAiB,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAsBnF,kFAAkF;IAC5E,QAAQ,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAe7C;;;;OAIG;IACG,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAoBxE,6BAA6B;IACvB,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAevD,oDAAoD;IAC9C,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAehD;;;;OAIG;IACG,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAiBnE"}
1
+ {"version":3,"file":"collection.d.ts","sourceRoot":"","sources":["../src/collection.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAc,EAAE,KAAK,aAAa,EAAE,MAAM,OAAO,CAAC;AAoBlD,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,eAAe,EAEpB,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,gBAAgB,EAErB,KAAK,aAAa,EAClB,KAAK,cAAc,EAEnB,KAAK,iBAAiB,EACvB,MAAM,kBAAkB,CAAC;AAkT1B,qBAAa,UAAU;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,KAAK,CAAS;IACtB,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,IAAI,CAAgB;gBAG1B,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,kBAAkB,EAC5B,IAAI,CAAC,EAAE,aAAa;IAWtB,QAAQ,IAAI,MAAM;IAIlB,2EAA2E;IAC3E,OAAO,CAAC,UAAU;IAalB,OAAO,CAAC,WAAW;IAMnB;;;;;;;;;;;;;OAaG;IACG,MAAM,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IA6GtE;;;;;;;;;;;;OAYG;IACG,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC;IAoH7D,mEAAmE;IAC7D,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAehE;;;OAGG;IACG,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAgCtD;;;OAGG;IACG,cAAc,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAmB9F;;;OAGG;IACG,aAAa,CAAC,OAAO,EAAE,iBAAiB,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAsBnF,kFAAkF;IAC5E,QAAQ,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAe7C;;;;;OAKG;IACG,OAAO,CAAC,MAAM,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAyB3E,6BAA6B;IACvB,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAevD,oDAAoD;IAC9C,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAehD;;;;OAIG;IACG,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAiBnE"}
@@ -9,7 +9,7 @@ import axios from 'axios';
9
9
  import { encode, decode } from '@msgpack/msgpack';
10
10
  import { jsonZip, jsonUnzip } from './crypto.js';
11
11
  import { raiseException } from './exceptions.js';
12
- import { DEFAULT_EF_SEARCH, DEFAULT_TOP_K, MAX_EF_SEARCH_ALLOWED, MAX_KEY_BYTES, MAX_TOP_K_ALLOWED, MAX_VALUE_BYTES, MAX_VECTORS_PER_BATCH, NORM_EPSILON, } from './constants.js';
12
+ import { DEFAULT_EF_SEARCH, DEFAULT_FILTER_BOOST_PERCENTAGE, DEFAULT_PREFILTER_THRESHOLD, DEFAULT_TOP_K, MAX_EF_SEARCH_ALLOWED, MAX_FILTER_BOOST_PERCENTAGE, MAX_KEY_BYTES, MAX_PREFILTER_THRESHOLD, MAX_TOP_K_ALLOWED, MAX_VALUE_BYTES, MAX_VECTORS_PER_BATCH, MIN_PREFILTER_THRESHOLD, NORM_EPSILON, } from './constants.js';
13
13
  /**
14
14
  * Reserved meta key. For cosine fields the client sends unit vectors (the server
15
15
  * stores no norms), so we stash each vector's norm here at upsert time;
@@ -236,35 +236,39 @@ function isConfigDict(x) {
236
236
  return typeof x === 'object' && x !== null && !Array.isArray(x) && 'query' in x;
237
237
  }
238
238
  /**
239
- * Effective per-field limit derived from the request `limit` and the field's
240
- * `weight` (the fraction of `limit` to draw from this field). A missing weight
241
- * uses the full `limit`; the result is clamped to at least 1.
239
+ * Resolve a field's `limit` (max hits to return for this field). A missing
240
+ * limit defaults to `DEFAULT_TOP_K`; the value must be in [1, MAX_TOP_K_ALLOWED].
242
241
  */
243
- function effectiveFieldLimit(fieldName, weight, limit) {
244
- if (weight === undefined || weight === null)
245
- return limit;
246
- if (typeof weight !== 'number' || !Number.isFinite(weight) || weight <= 0 || weight > 1) {
247
- throw new Error(`Search field '${fieldName}': weight must be a number in (0, 1].`);
248
- }
249
- return Math.max(1, Math.ceil(weight * limit));
242
+ function resolveFieldLimit(fieldName, limit) {
243
+ if (limit === undefined || limit === null)
244
+ return DEFAULT_TOP_K;
245
+ if (typeof limit !== 'number' ||
246
+ !Number.isInteger(limit) ||
247
+ limit < 1 ||
248
+ limit > MAX_TOP_K_ALLOWED) {
249
+ throw new Error(`Search field '${fieldName}': limit must be an integer between 1 and ${MAX_TOP_K_ALLOWED}.`);
250
+ }
251
+ return limit;
250
252
  }
251
253
  /**
252
254
  * Build one entry for the `fields` array sent to the server from the unified
253
- * per-field config: `{ query, weight?, ef_search? }`. `query` is required.
255
+ * per-field config: `{ query, limit?, ef_search? }`. `query` is required.
256
+ * Returns `[entry, fieldLimit]` so the caller can truncate decoded hits to the
257
+ * same per-field limit.
254
258
  */
255
- function buildFieldSearchEntry(fieldName, fieldData, limit, efSearch) {
259
+ function buildFieldSearchEntry(fieldName, fieldData, efSearch) {
256
260
  if (!isConfigDict(fieldData)) {
257
- throw new Error(`Search field '${fieldName}' must be an object of the form { query, weight?, ef_search? }.`);
261
+ throw new Error(`Search field '${fieldName}' must be an object of the form { query, limit?, ef_search? }.`);
258
262
  }
259
- const { query, weight, ef_search, ...rest } = fieldData;
260
- const fieldLimit = effectiveFieldLimit(fieldName, weight, limit);
263
+ const { query, limit, ef_search, ...rest } = fieldData;
264
+ const fieldLimit = resolveFieldLimit(fieldName, limit);
261
265
  const cfg = {
262
266
  ...rest,
263
267
  query,
264
268
  limit: fieldLimit,
265
269
  ef_search: ef_search === undefined ? efSearch : ef_search,
266
270
  };
267
- return { [fieldName]: cfg };
271
+ return [{ [fieldName]: cfg }, fieldLimit];
268
272
  }
269
273
  export class Collection {
270
274
  name;
@@ -426,29 +430,46 @@ export class Collection {
426
430
  /**
427
431
  * Search the collection across one or more fields in a single request.
428
432
  *
429
- * Each field is queried with the unified config `{ query, weight?, ef_search? }`,
430
- * where `weight` is the fraction of `limit` drawn from that field. The result
431
- * is always one ranked list per field: `{ results: { [field]: SearchHit[] } }`.
432
- * Use `rerank()` to fuse these into a single ranked list.
433
+ * Each field is queried with the unified config `{ query, limit?, ef_search? }`,
434
+ * where `limit` is the max number of hits to return for that field (defaults
435
+ * to `DEFAULT_TOP_K`). The result is always one ranked list per field:
436
+ * `{ results: { [field]: SearchHit[] } }`. Use `rerank()` to fuse these into a
437
+ * single ranked list.
438
+ *
439
+ * For filtered searches, `prefilterCardinalityThreshold` and
440
+ * `filterBoostPercentage` tune the speed/recall trade-off; when either is
441
+ * set they're sent to the server as `filter_params`.
433
442
  */
434
443
  async search(options) {
435
- const { fields, limit = DEFAULT_TOP_K, filter = null, efSearch = DEFAULT_EF_SEARCH } = options;
444
+ const { fields, filter = null, efSearch = DEFAULT_EF_SEARCH, prefilterCardinalityThreshold, filterBoostPercentage, } = options;
436
445
  const fieldNames = Object.keys(fields ?? {});
437
446
  if (fieldNames.length === 0)
438
447
  throw new Error('search requires at least one field');
439
- if (!(limit > 0 && limit <= MAX_TOP_K_ALLOWED)) {
440
- throw new Error(`limit must be between 1 and ${MAX_TOP_K_ALLOWED}`);
441
- }
442
448
  if (!(efSearch > 0 && efSearch <= MAX_EF_SEARCH_ALLOWED)) {
443
449
  throw new Error(`ef_search must be between 1 and ${MAX_EF_SEARCH_ALLOWED}`);
444
450
  }
451
+ // Optional filter-tuning params (filtered search only). Validate the ranges
452
+ // up front; they're only sent to the server when explicitly provided.
453
+ if (prefilterCardinalityThreshold !== undefined) {
454
+ const t = prefilterCardinalityThreshold;
455
+ if (!Number.isFinite(t) || t < MIN_PREFILTER_THRESHOLD || t > MAX_PREFILTER_THRESHOLD) {
456
+ throw new Error(`prefilterCardinalityThreshold must be between ${MIN_PREFILTER_THRESHOLD} and ${MAX_PREFILTER_THRESHOLD}`);
457
+ }
458
+ }
459
+ if (filterBoostPercentage !== undefined) {
460
+ const b = filterBoostPercentage;
461
+ if (!Number.isFinite(b) || b < 0 || b > MAX_FILTER_BOOST_PERCENTAGE) {
462
+ throw new Error(`filterBoostPercentage must be between 0 and ${MAX_FILTER_BOOST_PERCENTAGE}`);
463
+ }
464
+ }
445
465
  // L2-normalize query vectors for cosine fields (mirrors upsert).
446
466
  const fieldIdx = this.fieldIndex();
447
467
  const fieldsArray = [];
468
+ const fieldLimits = {};
448
469
  for (const fname of fieldNames) {
449
470
  const fieldData = fields[fname];
450
471
  if (!isConfigDict(fieldData)) {
451
- throw new Error(`Search field '${fname}' must be an object of the form { query, weight?, ef_search? }.`);
472
+ throw new Error(`Search field '${fname}' must be an object of the form { query, limit?, ef_search? }.`);
452
473
  }
453
474
  const normalized = { ...fieldData };
454
475
  let q = fieldData.query;
@@ -467,11 +488,21 @@ export class Collection {
467
488
  }
468
489
  }
469
490
  normalized.query = q;
470
- fieldsArray.push(buildFieldSearchEntry(fname, normalized, limit, efSearch));
491
+ const [entry, fieldLimit] = buildFieldSearchEntry(fname, normalized, efSearch);
492
+ fieldsArray.push(entry);
493
+ fieldLimits[fname] = fieldLimit;
471
494
  }
472
- const payload = { fields: fieldsArray, limit };
495
+ const payload = { fields: fieldsArray };
473
496
  if (filter !== null)
474
497
  payload.filter = filter;
498
+ // Filter tuning: send filter_params only when the caller tunes at least one
499
+ // knob, defaulting the other so the server gets a complete object.
500
+ if (prefilterCardinalityThreshold !== undefined || filterBoostPercentage !== undefined) {
501
+ payload.filter_params = {
502
+ prefilter_threshold: prefilterCardinalityThreshold ?? DEFAULT_PREFILTER_THRESHOLD,
503
+ boost_percentage: filterBoostPercentage ?? DEFAULT_FILTER_BOOST_PERCENTAGE,
504
+ };
505
+ }
475
506
  let response;
476
507
  try {
477
508
  response = await this.http.post(`${this.v2Url}/collections/${this.name}/search`, payload, {
@@ -497,10 +528,10 @@ export class Collection {
497
528
  return (resultsMap?.[name] ?? []);
498
529
  };
499
530
  // Always per-field results, unfused. Each field is truncated to its own
500
- // effective limit (already applied server-side via the per-field limit).
531
+ // limit (already applied server-side via the per-field limit).
501
532
  const perField = {};
502
533
  for (const fname of fieldNames) {
503
- perField[fname] = decodeFieldHits(getField(fname), objectsMap, limit);
534
+ perField[fname] = decodeFieldHits(getField(fname), objectsMap, fieldLimits[fname]);
504
535
  }
505
536
  return { results: perField };
506
537
  }
@@ -614,19 +645,25 @@ export class Collection {
614
645
  return response.data;
615
646
  }
616
647
  /**
617
- * Rebuild a vector field's HNSW graph with new M / ef_con (async).
648
+ * Rebuild one or more dense vector fields' HNSW graphs (async).
618
649
  * Only M/ef_con may change; dimension/space_type/precision are immutable.
619
- * Poll progress with `rebuildStatus()`.
650
+ * Any sparse field in the list is skipped server-side. Poll progress with
651
+ * `rebuildStatus()`.
620
652
  */
621
- async rebuild(options) {
622
- const { field, m, efCon } = options;
623
- if (!field)
624
- throw new Error('rebuild requires the vector field name');
625
- const body = { field };
626
- if (m !== undefined)
627
- body.M = m;
628
- if (efCon !== undefined)
629
- body.ef_con = efCon;
653
+ async rebuild(fields) {
654
+ if (!Array.isArray(fields) || fields.length === 0)
655
+ throw new Error('rebuild requires a non-empty list of field specs');
656
+ const specs = fields.map(({ field, m, efCon }) => {
657
+ if (!field)
658
+ throw new Error("each field spec must include a 'field' name");
659
+ const spec = { field };
660
+ if (m !== undefined)
661
+ spec.M = m;
662
+ if (efCon !== undefined)
663
+ spec.ef_con = efCon;
664
+ return spec;
665
+ });
666
+ const body = { fields: specs };
630
667
  let response;
631
668
  try {
632
669
  response = await this.http.post(`${this.v2Url}/collections/${this.name}/rebuild`, body, {
@@ -1 +1 @@
1
- {"version":3,"file":"collection.js","sourceRoot":"","sources":["../src/collection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"collection.js","sourceRoot":"","sources":["../src/collection.ts"],"names":[],"mappings":"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"}
@@ -20,6 +20,21 @@ export declare const DEFAULT_TOP_K = 10;
20
20
  export declare const DEFAULT_EF_SEARCH = 128;
21
21
  /** Default RRF rank constant k. */
22
22
  export declare const DEFAULT_RRF_RANK_CONSTANT = 60;
23
+ /**
24
+ * Filter tuning (filtered search only). `prefilter_threshold` controls when the
25
+ * search switches from HNSW filtered search to brute-force prefiltering; raising
26
+ * it favors the exhaustive scan, lowering it favors HNSW graph search.
27
+ */
28
+ export declare const DEFAULT_PREFILTER_THRESHOLD = 10000;
29
+ export declare const MIN_PREFILTER_THRESHOLD = 1000;
30
+ export declare const MAX_PREFILTER_THRESHOLD = 1000000;
31
+ /**
32
+ * `boost_percentage` expands the HNSW candidate pool before the filter is
33
+ * applied, to compensate for candidates discarded by the filter. 0 = no boost,
34
+ * 100 = double the candidate pool.
35
+ */
36
+ export declare const DEFAULT_FILTER_BOOST_PERCENTAGE = 0;
37
+ export declare const MAX_FILTER_BOOST_PERCENTAGE = 100;
23
38
  /** Filter key/value size guards (UTF-8 bytes) — prevents server-side valsize errors. */
24
39
  export declare const MAX_KEY_BYTES = 128;
25
40
  export declare const MAX_VALUE_BYTES = 1024;
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,6CAA6C;AAC7C,eAAO,MAAM,qBAAqB,OAAO,CAAC;AAE1C,wEAAwE;AACxE,eAAO,MAAM,qBAAqB,QAAS,CAAC;AAE5C,0EAA0E;AAC1E,eAAO,MAAM,iBAAiB,OAAO,CAAC;AAEtC,2DAA2D;AAC3D,eAAO,MAAM,qBAAqB,OAAO,CAAC;AAE1C,wEAAwE;AACxE,eAAO,MAAM,kCAAkC,KAAK,CAAC;AAErD,yDAAyD;AACzD,eAAO,MAAM,aAAa,KAAK,CAAC;AAEhC,2EAA2E;AAC3E,eAAO,MAAM,iBAAiB,MAAM,CAAC;AAErC,mCAAmC;AACnC,eAAO,MAAM,yBAAyB,KAAK,CAAC;AAE5C,wFAAwF;AACxF,eAAO,MAAM,aAAa,MAAM,CAAC;AACjC,eAAO,MAAM,eAAe,OAAO,CAAC;AAEpC,wCAAwC;AACxC,eAAO,MAAM,qBAAqB,iCAAkC,CAAC;AAErE,oCAAoC;AACpC,eAAO,MAAM,2BAA2B,oCAAqC,CAAC;AAE9E,0DAA0D;AAC1D,eAAO,MAAM,cAAc,oDAAqD,CAAC;AAEjF,+DAA+D;AAC/D,eAAO,MAAM,iBAAiB,sBAAuB,CAAC;AAEtD,iEAAiE;AACjE,eAAO,MAAM,cAAc,iCAAiC,CAAC;AAE7D,iEAAiE;AACjE,eAAO,MAAM,YAAY,QAAQ,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,6CAA6C;AAC7C,eAAO,MAAM,qBAAqB,OAAO,CAAC;AAE1C,wEAAwE;AACxE,eAAO,MAAM,qBAAqB,QAAS,CAAC;AAE5C,0EAA0E;AAC1E,eAAO,MAAM,iBAAiB,OAAO,CAAC;AAEtC,2DAA2D;AAC3D,eAAO,MAAM,qBAAqB,OAAO,CAAC;AAE1C,wEAAwE;AACxE,eAAO,MAAM,kCAAkC,KAAK,CAAC;AAErD,yDAAyD;AACzD,eAAO,MAAM,aAAa,KAAK,CAAC;AAEhC,2EAA2E;AAC3E,eAAO,MAAM,iBAAiB,MAAM,CAAC;AAErC,mCAAmC;AACnC,eAAO,MAAM,yBAAyB,KAAK,CAAC;AAE5C;;;;GAIG;AACH,eAAO,MAAM,2BAA2B,QAAS,CAAC;AAClD,eAAO,MAAM,uBAAuB,OAAQ,CAAC;AAC7C,eAAO,MAAM,uBAAuB,UAAY,CAAC;AAEjD;;;;GAIG;AACH,eAAO,MAAM,+BAA+B,IAAI,CAAC;AACjD,eAAO,MAAM,2BAA2B,MAAM,CAAC;AAE/C,wFAAwF;AACxF,eAAO,MAAM,aAAa,MAAM,CAAC;AACjC,eAAO,MAAM,eAAe,OAAO,CAAC;AAEpC,wCAAwC;AACxC,eAAO,MAAM,qBAAqB,iCAAkC,CAAC;AAErE,oCAAoC;AACpC,eAAO,MAAM,2BAA2B,oCAAqC,CAAC;AAE9E,0DAA0D;AAC1D,eAAO,MAAM,cAAc,oDAAqD,CAAC;AAEjF,+DAA+D;AAC/D,eAAO,MAAM,iBAAiB,sBAAuB,CAAC;AAEtD,iEAAiE;AACjE,eAAO,MAAM,cAAc,iCAAiC,CAAC;AAE7D,iEAAiE;AACjE,eAAO,MAAM,YAAY,QAAQ,CAAC"}
package/dist/constants.js CHANGED
@@ -20,6 +20,21 @@ export const DEFAULT_TOP_K = 10;
20
20
  export const DEFAULT_EF_SEARCH = 128;
21
21
  /** Default RRF rank constant k. */
22
22
  export const DEFAULT_RRF_RANK_CONSTANT = 60;
23
+ /**
24
+ * Filter tuning (filtered search only). `prefilter_threshold` controls when the
25
+ * search switches from HNSW filtered search to brute-force prefiltering; raising
26
+ * it favors the exhaustive scan, lowering it favors HNSW graph search.
27
+ */
28
+ export const DEFAULT_PREFILTER_THRESHOLD = 10_000;
29
+ export const MIN_PREFILTER_THRESHOLD = 1_000;
30
+ export const MAX_PREFILTER_THRESHOLD = 1_000_000;
31
+ /**
32
+ * `boost_percentage` expands the HNSW candidate pool before the filter is
33
+ * applied, to compensate for candidates discarded by the filter. 0 = no boost,
34
+ * 100 = double the candidate pool.
35
+ */
36
+ export const DEFAULT_FILTER_BOOST_PERCENTAGE = 0;
37
+ export const MAX_FILTER_BOOST_PERCENTAGE = 100;
23
38
  /** Filter key/value size guards (UTF-8 bytes) — prevents server-side valsize errors. */
24
39
  export const MAX_KEY_BYTES = 128;
25
40
  export const MAX_VALUE_BYTES = 1024;
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,6CAA6C;AAC7C,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,CAAC;AAE1C,wEAAwE;AACxE,MAAM,CAAC,MAAM,qBAAqB,GAAG,MAAM,CAAC;AAE5C,0EAA0E;AAC1E,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,CAAC;AAEtC,2DAA2D;AAC3D,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,CAAC;AAE1C,wEAAwE;AACxE,MAAM,CAAC,MAAM,kCAAkC,GAAG,EAAE,CAAC;AAErD,yDAAyD;AACzD,MAAM,CAAC,MAAM,aAAa,GAAG,EAAE,CAAC;AAEhC,2EAA2E;AAC3E,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,CAAC;AAErC,mCAAmC;AACnC,MAAM,CAAC,MAAM,yBAAyB,GAAG,EAAE,CAAC;AAE5C,wFAAwF;AACxF,MAAM,CAAC,MAAM,aAAa,GAAG,GAAG,CAAC;AACjC,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,CAAC;AAEpC,wCAAwC;AACxC,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAU,CAAC;AAErE,oCAAoC;AACpC,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,SAAS,EAAE,YAAY,CAAU,CAAC;AAE9E,0DAA0D;AAC1D,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY,CAAU,CAAC;AAEjF,+DAA+D;AAC/D,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,IAAI,EAAE,GAAG,CAAU,CAAC;AAEtD,iEAAiE;AACjE,MAAM,CAAC,MAAM,cAAc,GAAG,8BAA8B,CAAC;AAE7D,iEAAiE;AACjE,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,6CAA6C;AAC7C,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,CAAC;AAE1C,wEAAwE;AACxE,MAAM,CAAC,MAAM,qBAAqB,GAAG,MAAM,CAAC;AAE5C,0EAA0E;AAC1E,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,CAAC;AAEtC,2DAA2D;AAC3D,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,CAAC;AAE1C,wEAAwE;AACxE,MAAM,CAAC,MAAM,kCAAkC,GAAG,EAAE,CAAC;AAErD,yDAAyD;AACzD,MAAM,CAAC,MAAM,aAAa,GAAG,EAAE,CAAC;AAEhC,2EAA2E;AAC3E,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,CAAC;AAErC,mCAAmC;AACnC,MAAM,CAAC,MAAM,yBAAyB,GAAG,EAAE,CAAC;AAE5C;;;;GAIG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,MAAM,CAAC;AAClD,MAAM,CAAC,MAAM,uBAAuB,GAAG,KAAK,CAAC;AAC7C,MAAM,CAAC,MAAM,uBAAuB,GAAG,SAAS,CAAC;AAEjD;;;;GAIG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,CAAC;AACjD,MAAM,CAAC,MAAM,2BAA2B,GAAG,GAAG,CAAC;AAE/C,wFAAwF;AACxF,MAAM,CAAC,MAAM,aAAa,GAAG,GAAG,CAAC;AACjC,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,CAAC;AAEpC,wCAAwC;AACxC,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAU,CAAC;AAErE,oCAAoC;AACpC,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,SAAS,EAAE,YAAY,CAAU,CAAC;AAE9E,0DAA0D;AAC1D,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY,CAAU,CAAC;AAEjF,+DAA+D;AAC/D,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,IAAI,EAAE,GAAG,CAAU,CAAC;AAEtD,iEAAiE;AACjE,MAAM,CAAC,MAAM,cAAc,GAAG,8BAA8B,CAAC;AAE7D,iEAAiE;AACjE,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,CAAC"}
package/dist/index.d.ts CHANGED
@@ -3,7 +3,7 @@
3
3
  */
4
4
  export { Endee } from './endee.js';
5
5
  export { Collection } from './collection.js';
6
- export { applyRrf, rerank } from './reranker.js';
6
+ export { rerank } from './reranker.js';
7
7
  export * from './exceptions.js';
8
8
  export * from './types/index.js';
9
9
  export * from './constants.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACjD,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC"}
package/dist/index.js CHANGED
@@ -3,7 +3,7 @@
3
3
  */
4
4
  export { Endee } from './endee.js';
5
5
  export { Collection } from './collection.js';
6
- export { applyRrf, rerank } from './reranker.js';
6
+ export { rerank } from './reranker.js';
7
7
  export * from './exceptions.js';
8
8
  export * from './types/index.js';
9
9
  export * from './constants.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACjD,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC"}
@@ -1,21 +1,10 @@
1
1
  /**
2
2
  * Reranking utilities for the Endee client.
3
3
  *
4
- * Ports the Python client's `apply_rrf`. Each reranker accepts the per-field
5
- * ranked hits from the server SearchResult and returns a fused, ranked list of
6
- * `[intId, score]` tuples truncated to `limit`.
4
+ * Fuses the per-field ranked hits from `search()` into a single ranked list
5
+ * using Reciprocal Rank Fusion.
7
6
  */
8
7
  import type { RerankOptions, RerankResponse, SearchResponse } from './types/index.js';
9
- /** `{ fieldName: [[intId, score], ...] }` from the server SearchResult. */
10
- export type ResultsMap = Map<string, Array<[number, number]>> | Record<string, Array<[number, number]>>;
11
- /**
12
- * Reciprocal Rank Fusion across named fields.
13
- *
14
- * For each field, a hit at rank `r` (1-based) contributes `weight / (k + r)` to
15
- * that object's score. Scores are summed across fields and the top `limit`
16
- * objects are returned, sorted by score descending.
17
- */
18
- export declare function applyRrf(resultsMap: ResultsMap, fieldWeights: Record<string, number>, limit: number, k?: number): Array<[number, number]>;
19
8
  /**
20
9
  * Fuse the per-field results from `search()` into a single ranked list.
21
10
  *
@@ -1 +1 @@
1
- {"version":3,"file":"reranker.d.ts","sourceRoot":"","sources":["../src/reranker.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAa,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEjG,2EAA2E;AAC3E,MAAM,MAAM,UAAU,GAClB,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,GACpC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;AAO5C;;;;;;GAMG;AACH,wBAAgB,QAAQ,CACtB,UAAU,EAAE,UAAU,EACtB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACpC,KAAK,EAAE,MAAM,EACb,CAAC,SAAK,GACL,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAgBzB;AAsBD;;;;;;;;;;;GAWG;AACH,wBAAgB,MAAM,CAAC,aAAa,EAAE,cAAc,EAAE,OAAO,EAAE,aAAa,GAAG,cAAc,CAmC5F"}
1
+ {"version":3,"file":"reranker.d.ts","sourceRoot":"","sources":["../src/reranker.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAa,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAsBjG;;;;;;;;;;;GAWG;AACH,wBAAgB,MAAM,CAAC,aAAa,EAAE,cAAc,EAAE,OAAO,EAAE,aAAa,GAAG,cAAc,CAmC5F"}
package/dist/reranker.js CHANGED
@@ -1,38 +1,10 @@
1
1
  /**
2
2
  * Reranking utilities for the Endee client.
3
3
  *
4
- * Ports the Python client's `apply_rrf`. Each reranker accepts the per-field
5
- * ranked hits from the server SearchResult and returns a fused, ranked list of
6
- * `[intId, score]` tuples truncated to `limit`.
4
+ * Fuses the per-field ranked hits from `search()` into a single ranked list
5
+ * using Reciprocal Rank Fusion.
7
6
  */
8
7
  import { DEFAULT_RRF_RANK_CONSTANT, DEFAULT_TOP_K } from './constants.js';
9
- function entries(map) {
10
- if (map instanceof Map)
11
- return Array.from(map.entries());
12
- return Object.entries(map);
13
- }
14
- /**
15
- * Reciprocal Rank Fusion across named fields.
16
- *
17
- * For each field, a hit at rank `r` (1-based) contributes `weight / (k + r)` to
18
- * that object's score. Scores are summed across fields and the top `limit`
19
- * objects are returned, sorted by score descending.
20
- */
21
- export function applyRrf(resultsMap, fieldWeights, limit, k = 60) {
22
- const rrfScores = new Map();
23
- for (const [fieldName, hits] of entries(resultsMap)) {
24
- const weight = fieldWeights[fieldName] ?? 0.0;
25
- let rank = 1;
26
- for (const hit of hits || []) {
27
- const intId = hit[0];
28
- rrfScores.set(intId, (rrfScores.get(intId) ?? 0.0) + weight / (k + rank));
29
- rank += 1;
30
- }
31
- }
32
- return Array.from(rrfScores.entries())
33
- .sort((a, b) => b[1] - a[1])
34
- .slice(0, limit);
35
- }
36
8
  /** Resolve and validate per-field weights against the fields present. */
37
9
  function resolveFieldWeights(fieldNames, fieldWeights) {
38
10
  if (fieldWeights === null || fieldWeights === undefined) {
@@ -1 +1 @@
1
- {"version":3,"file":"reranker.js","sourceRoot":"","sources":["../src/reranker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reranker.js","sourceRoot":"","sources":["../src/reranker.ts"],"names":[],"mappings":"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"}
@@ -56,14 +56,13 @@ export interface ObjectInput {
56
56
  fields?: Record<string, FieldValue>;
57
57
  }
58
58
  /**
59
- * Per-field search config. The query value is required; `weight` is the
60
- * fraction of the request `limit` to draw from this field (effective per-field
61
- * limit = ceil(weight * limit)). Omit `weight` to use the full `limit`.
59
+ * Per-field search config. The query value is required; `limit` is the max
60
+ * number of hits to return for this field (defaults to `DEFAULT_TOP_K`).
62
61
  */
63
62
  export interface FieldQueryConfig {
64
63
  query: FieldValue;
65
- /** Fraction of the request `limit` to take from this field (0 < weight <= 1). */
66
- weight?: number;
64
+ /** Max hits to return for this field (1..MAX_TOP_K_ALLOWED). Defaults to DEFAULT_TOP_K. */
65
+ limit?: number;
67
66
  ef_search?: number;
68
67
  [key: string]: unknown;
69
68
  }
@@ -71,9 +70,20 @@ export interface FieldQueryConfig {
71
70
  export type SearchFieldValue = FieldQueryConfig;
72
71
  export interface SearchOptions {
73
72
  fields: Record<string, SearchFieldValue>;
74
- limit?: number;
75
73
  filter?: Array<Record<string, unknown>> | null;
76
74
  efSearch?: number;
75
+ /**
76
+ * Filtered search only. Cardinality below which the search switches from HNSW
77
+ * filtered search to brute-force prefiltering. Default 10,000; range
78
+ * 1,000–1,000,000. Raise to favor exhaustive scan, lower to favor HNSW.
79
+ */
80
+ prefilterCardinalityThreshold?: number;
81
+ /**
82
+ * Filtered search only. Percentage by which to expand the HNSW candidate pool
83
+ * before filtering, to compensate for filtered-out candidates. Default 0
84
+ * (no boost); max 100 (doubles the pool).
85
+ */
86
+ filterBoostPercentage?: number;
77
87
  }
78
88
  /** Options for the standalone `rerank()` fusion of per-field search results. */
79
89
  export interface RerankOptions {
@@ -129,7 +139,12 @@ export interface UpdateFilterEntry {
129
139
  id: string;
130
140
  filter: Record<string, unknown>;
131
141
  }
132
- export interface RebuildOptions {
142
+ /**
143
+ * A single dense vector field to rebuild. `m`/`efCon` are mapped to the
144
+ * server-native `M`/`ef_con` keys when the request is sent. Sparse fields are
145
+ * skipped server-side.
146
+ */
147
+ export interface RebuildFieldSpec {
133
148
  field: string;
134
149
  m?: number;
135
150
  efCon?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "endee",
3
- "version": "1.8.0-dev.1",
3
+ "version": "1.8.0-dev.3",
4
4
  "description": "TypeScript client for encrypted vector database with maximum security and speed",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",