@infino-ai/infino 0.4.1 → 0.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/infino/index.d.ts +2 -8
- package/infino/index.js +2 -2
- package/infino/native.d.ts +6 -5
- package/package.json +7 -7
package/infino/index.d.ts
CHANGED
|
@@ -115,22 +115,16 @@ export interface VectorFilter {
|
|
|
115
115
|
mode?: BoolMode;
|
|
116
116
|
}
|
|
117
117
|
export interface VectorSearchOptions {
|
|
118
|
-
/** IVF partitions to probe (higher = better recall, more work). */
|
|
119
|
-
nprobe?: number;
|
|
120
|
-
/** Over-fetch multiplier for the exact-rerank stage (higher = better recall). */
|
|
121
|
-
rerankMult?: number;
|
|
122
118
|
projection?: string[];
|
|
123
119
|
arrow?: boolean;
|
|
124
120
|
/** Restrict the kNN to rows matching a text predicate (pushdown pre-filter). */
|
|
125
121
|
filter?: VectorFilter;
|
|
126
122
|
}
|
|
127
|
-
/** Options for `hybridSearch`. `mode` applies to the BM25 side;
|
|
128
|
-
*
|
|
123
|
+
/** Options for `hybridSearch`. `mode` applies to the BM25 side; vector
|
|
124
|
+
* probe width and rerank budget are engine-decided. */
|
|
129
125
|
export interface HybridSearchOptions {
|
|
130
126
|
/** BM25 boolean mode: `"or"` (default) or `"and"`. */
|
|
131
127
|
mode?: BoolMode;
|
|
132
|
-
/** IVF partitions to probe on the vector side (higher = better recall). */
|
|
133
|
-
nprobe?: number;
|
|
134
128
|
projection?: string[];
|
|
135
129
|
arrow?: boolean;
|
|
136
130
|
}
|
package/infino/index.js
CHANGED
|
@@ -256,12 +256,12 @@ class Table {
|
|
|
256
256
|
}
|
|
257
257
|
vectorSearch(column, query, k, opts = {}) {
|
|
258
258
|
const q = query instanceof Float32Array ? query : Float32Array.from(query);
|
|
259
|
-
const buf = guard(this.remote, () => this.inner.vectorSearch(column, q, k, opts.
|
|
259
|
+
const buf = guard(this.remote, () => this.inner.vectorSearch(column, q, k, opts.projection, opts.filter));
|
|
260
260
|
return decode(buf, opts.arrow);
|
|
261
261
|
}
|
|
262
262
|
hybridSearch(textColumn, textQuery, vectorColumn, vectorQuery, k, opts = {}) {
|
|
263
263
|
const q = vectorQuery instanceof Float32Array ? vectorQuery : Float32Array.from(vectorQuery);
|
|
264
|
-
const buf = guard(this.remote, () => this.inner.hybridSearch(textColumn, textQuery, vectorColumn, q, k, opts.mode, opts.
|
|
264
|
+
const buf = guard(this.remote, () => this.inner.hybridSearch(textColumn, textQuery, vectorColumn, q, k, opts.mode, opts.projection));
|
|
265
265
|
return decode(buf, opts.arrow);
|
|
266
266
|
}
|
|
267
267
|
tokenMatch(column, query, opts = {}) {
|
package/infino/native.d.ts
CHANGED
|
@@ -175,7 +175,7 @@ export declare class Table {
|
|
|
175
175
|
* opposite direction from `bm25Search`'s similarity. Fuse with
|
|
176
176
|
* `hybridSearch`.
|
|
177
177
|
*/
|
|
178
|
-
vectorSearch(column: string, query: Float32Array, k: number,
|
|
178
|
+
vectorSearch(column: string, query: Float32Array, k: number, projection?: Array<string> | undefined | null, filter?: VectorFilter | undefined | null): Buffer
|
|
179
179
|
/**
|
|
180
180
|
* Unranked token match over one FTS column — every row whose `column`
|
|
181
181
|
* matches the query's tokens under `mode` (`"or"` default, `"and"`).
|
|
@@ -197,11 +197,12 @@ export declare class Table {
|
|
|
197
197
|
/**
|
|
198
198
|
* Hybrid BM25 + vector search fused with reciprocal-rank fusion.
|
|
199
199
|
* `text_column`/`text_query` (under `mode`) drive BM25; `vector_column`/
|
|
200
|
-
* `vector_query` (a `Float32Array
|
|
201
|
-
*
|
|
202
|
-
* fused RRF score (higher is
|
|
200
|
+
* `vector_query` (a `Float32Array`) drive vector kNN — probe width and
|
|
201
|
+
* rerank budget are engine-decided. Returns Arrow rows like
|
|
202
|
+
* [`Table::bm25_search`], with `score` the fused RRF score (higher is
|
|
203
|
+
* better); `projection` selects columns.
|
|
203
204
|
*/
|
|
204
|
-
hybridSearch(textColumn: string, textQuery: string, vectorColumn: string, vectorQuery: Float32Array, k: number, mode?: string | undefined | null,
|
|
205
|
+
hybridSearch(textColumn: string, textQuery: string, vectorColumn: string, vectorQuery: Float32Array, k: number, mode?: string | undefined | null, projection?: Array<string> | undefined | null): Buffer
|
|
205
206
|
/**
|
|
206
207
|
* Delete every row matching a SQL `predicate` (e.g. `"status = 'spam'"`),
|
|
207
208
|
* returning the mutation counts. Requires durable storage — a `memory://`
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@infino-ai/infino",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.1",
|
|
4
4
|
"description": "Fast search on object storage — SQL, full-text, and vector search.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"publishConfig": {
|
|
@@ -82,12 +82,12 @@
|
|
|
82
82
|
"apache-arrow": "^17"
|
|
83
83
|
},
|
|
84
84
|
"optionalDependencies": {
|
|
85
|
-
"infx-darwin-x64": "0.
|
|
86
|
-
"infx-darwin-arm64": "0.
|
|
87
|
-
"infx-linux-x64-gnu": "0.
|
|
88
|
-
"infx-linux-arm64-gnu": "0.
|
|
89
|
-
"infx-linux-x64-musl": "0.
|
|
90
|
-
"infx-linux-arm64-musl": "0.
|
|
85
|
+
"infx-darwin-x64": "0.5.1",
|
|
86
|
+
"infx-darwin-arm64": "0.5.1",
|
|
87
|
+
"infx-linux-x64-gnu": "0.5.1",
|
|
88
|
+
"infx-linux-arm64-gnu": "0.5.1",
|
|
89
|
+
"infx-linux-x64-musl": "0.5.1",
|
|
90
|
+
"infx-linux-arm64-musl": "0.5.1"
|
|
91
91
|
},
|
|
92
92
|
"devDependencies": {
|
|
93
93
|
"@napi-rs/cli": "^2.18.0",
|