@valkey/valkey-glide-darwin-x64 1.3.4 → 255.255.255
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/package.json +31 -95
- package/README.md +0 -106
- package/build-ts/index.d.ts +0 -14
- package/build-ts/index.js +0 -34
- package/build-ts/index.js.map +0 -1
- package/build-ts/src/BaseClient.d.ts +0 -5254
- package/build-ts/src/BaseClient.js +0 -6391
- package/build-ts/src/BaseClient.js.map +0 -1
- package/build-ts/src/Commands.d.ts +0 -1034
- package/build-ts/src/Commands.js +0 -2710
- package/build-ts/src/Commands.js.map +0 -1
- package/build-ts/src/Errors.d.ts +0 -21
- package/build-ts/src/Errors.js +0 -43
- package/build-ts/src/Errors.js.map +0 -1
- package/build-ts/src/GlideClient.d.ts +0 -832
- package/build-ts/src/GlideClient.js +0 -940
- package/build-ts/src/GlideClient.js.map +0 -1
- package/build-ts/src/GlideClusterClient.d.ts +0 -1323
- package/build-ts/src/GlideClusterClient.js +0 -1276
- package/build-ts/src/GlideClusterClient.js.map +0 -1
- package/build-ts/src/Logger.d.ts +0 -32
- package/build-ts/src/Logger.js +0 -68
- package/build-ts/src/Logger.js.map +0 -1
- package/build-ts/src/ProtobufMessage.d.ts +0 -2889
- package/build-ts/src/ProtobufMessage.js +0 -8785
- package/build-ts/src/ProtobufMessage.js.map +0 -1
- package/build-ts/src/Transaction.d.ts +0 -2963
- package/build-ts/src/Transaction.js +0 -3388
- package/build-ts/src/Transaction.js.map +0 -1
- package/build-ts/src/server-modules/GlideFt.d.ts +0 -412
- package/build-ts/src/server-modules/GlideFt.js +0 -664
- package/build-ts/src/server-modules/GlideFt.js.map +0 -1
- package/build-ts/src/server-modules/GlideFtOptions.d.ts +0 -244
- package/build-ts/src/server-modules/GlideFtOptions.js +0 -6
- package/build-ts/src/server-modules/GlideFtOptions.js.map +0 -1
- package/build-ts/src/server-modules/GlideJson.d.ts +0 -1335
- package/build-ts/src/server-modules/GlideJson.js +0 -1628
- package/build-ts/src/server-modules/GlideJson.js.map +0 -1
- package/index.ts +0 -15
- package/node_modules/glide-rs/glide-rs.darwin-x64.node +0 -0
- package/node_modules/glide-rs/index.d.ts +0 -71
- package/node_modules/glide-rs/index.js +0 -317
- package/node_modules/glide-rs/package.json +0 -65
- package/npm/glide/index.ts +0 -391
- package/npm/glide/package.json +0 -67
|
@@ -1,664 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Copyright Valkey GLIDE Project Contributors - SPDX Identifier: Apache-2.0
|
|
4
|
-
*/
|
|
5
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
6
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
7
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
8
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
9
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
10
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
11
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
12
|
-
});
|
|
13
|
-
};
|
|
14
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.GlideFt = void 0;
|
|
16
|
-
const BaseClient_1 = require("../BaseClient");
|
|
17
|
-
const GlideClient_1 = require("../GlideClient");
|
|
18
|
-
/** Module for Vector Search commands. */
|
|
19
|
-
class GlideFt {
|
|
20
|
-
/**
|
|
21
|
-
* Creates an index and initiates a backfill of that index.
|
|
22
|
-
*
|
|
23
|
-
* @param client - The client to execute the command.
|
|
24
|
-
* @param indexName - The index name for the index to be created.
|
|
25
|
-
* @param schema - The fields of the index schema, specifying the fields and their types.
|
|
26
|
-
* @param options - (Optional) Options for the `FT.CREATE` command. See {@link FtCreateOptions}.
|
|
27
|
-
* @returns If the index is successfully created, returns "OK".
|
|
28
|
-
*
|
|
29
|
-
* @example
|
|
30
|
-
* ```typescript
|
|
31
|
-
* // Example usage of FT.CREATE to create a 6-dimensional JSON index using the HNSW algorithm
|
|
32
|
-
* await GlideFt.create(client, "json_idx1", [{
|
|
33
|
-
* type: "VECTOR",
|
|
34
|
-
* name: "$.vec",
|
|
35
|
-
* alias: "VEC",
|
|
36
|
-
* attributes: {
|
|
37
|
-
* algorithm: "HNSW",
|
|
38
|
-
* type: "FLOAT32",
|
|
39
|
-
* dimension: 6,
|
|
40
|
-
* distanceMetric: "L2",
|
|
41
|
-
* numberOfEdges: 32,
|
|
42
|
-
* },
|
|
43
|
-
* }], {
|
|
44
|
-
* dataType: "JSON",
|
|
45
|
-
* prefixes: ["json:"]
|
|
46
|
-
* });
|
|
47
|
-
* ```
|
|
48
|
-
*/
|
|
49
|
-
static create(client, indexName, schema, options) {
|
|
50
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
51
|
-
const args = ["FT.CREATE", indexName];
|
|
52
|
-
if (options) {
|
|
53
|
-
if ("dataType" in options) {
|
|
54
|
-
args.push("ON", options.dataType);
|
|
55
|
-
}
|
|
56
|
-
if ("prefixes" in options && options.prefixes) {
|
|
57
|
-
args.push("PREFIX", options.prefixes.length.toString(), ...options.prefixes);
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
args.push("SCHEMA");
|
|
61
|
-
schema.forEach((f) => {
|
|
62
|
-
args.push(f.name);
|
|
63
|
-
if (f.alias) {
|
|
64
|
-
args.push("AS", f.alias);
|
|
65
|
-
}
|
|
66
|
-
args.push(f.type);
|
|
67
|
-
switch (f.type) {
|
|
68
|
-
case "TAG": {
|
|
69
|
-
if (f.separator) {
|
|
70
|
-
args.push("SEPARATOR", f.separator);
|
|
71
|
-
}
|
|
72
|
-
if (f.caseSensitive) {
|
|
73
|
-
args.push("CASESENSITIVE");
|
|
74
|
-
}
|
|
75
|
-
break;
|
|
76
|
-
}
|
|
77
|
-
case "VECTOR": {
|
|
78
|
-
if (f.attributes) {
|
|
79
|
-
args.push(f.attributes.algorithm);
|
|
80
|
-
const attributes = [];
|
|
81
|
-
// all VectorFieldAttributes attributes
|
|
82
|
-
if (f.attributes.dimensions) {
|
|
83
|
-
attributes.push("DIM", f.attributes.dimensions.toString());
|
|
84
|
-
}
|
|
85
|
-
if (f.attributes.distanceMetric) {
|
|
86
|
-
attributes.push("DISTANCE_METRIC", f.attributes.distanceMetric.toString());
|
|
87
|
-
}
|
|
88
|
-
if (f.attributes.type) {
|
|
89
|
-
attributes.push("TYPE", f.attributes.type.toString());
|
|
90
|
-
}
|
|
91
|
-
else {
|
|
92
|
-
attributes.push("TYPE", "FLOAT32");
|
|
93
|
-
}
|
|
94
|
-
if (f.attributes.initialCap) {
|
|
95
|
-
attributes.push("INITIAL_CAP", f.attributes.initialCap.toString());
|
|
96
|
-
}
|
|
97
|
-
// VectorFieldAttributesHnsw attributes
|
|
98
|
-
if ("m" in f.attributes && f.attributes.m) {
|
|
99
|
-
attributes.push("M", f.attributes.m.toString());
|
|
100
|
-
}
|
|
101
|
-
if ("efContruction" in f.attributes &&
|
|
102
|
-
f.attributes.efContruction) {
|
|
103
|
-
attributes.push("EF_CONSTRUCTION", f.attributes.efContruction.toString());
|
|
104
|
-
}
|
|
105
|
-
if ("efRuntime" in f.attributes &&
|
|
106
|
-
f.attributes.efRuntime) {
|
|
107
|
-
attributes.push("EF_RUNTIME", f.attributes.efRuntime.toString());
|
|
108
|
-
}
|
|
109
|
-
args.push(attributes.length.toString(), ...attributes);
|
|
110
|
-
}
|
|
111
|
-
break;
|
|
112
|
-
}
|
|
113
|
-
default:
|
|
114
|
-
// no-op
|
|
115
|
-
}
|
|
116
|
-
});
|
|
117
|
-
return _handleCustomCommand(client, args, {
|
|
118
|
-
decoder: BaseClient_1.Decoder.String,
|
|
119
|
-
});
|
|
120
|
-
});
|
|
121
|
-
}
|
|
122
|
-
/**
|
|
123
|
-
* Deletes an index and associated content. Indexed document keys are unaffected.
|
|
124
|
-
*
|
|
125
|
-
* @param client - The client to execute the command.
|
|
126
|
-
* @param indexName - The index name.
|
|
127
|
-
* @returns "OK"
|
|
128
|
-
*
|
|
129
|
-
* @example
|
|
130
|
-
* ```typescript
|
|
131
|
-
* // Example usage of FT.DROPINDEX to drop an index
|
|
132
|
-
* await GlideFt.dropindex(client, "json_idx1"); // "OK"
|
|
133
|
-
* ```
|
|
134
|
-
*/
|
|
135
|
-
static dropindex(client, indexName) {
|
|
136
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
137
|
-
const args = ["FT.DROPINDEX", indexName];
|
|
138
|
-
return _handleCustomCommand(client, args, {
|
|
139
|
-
decoder: BaseClient_1.Decoder.String,
|
|
140
|
-
});
|
|
141
|
-
});
|
|
142
|
-
}
|
|
143
|
-
/**
|
|
144
|
-
* Lists all indexes.
|
|
145
|
-
*
|
|
146
|
-
* @param client - The client to execute the command.
|
|
147
|
-
* @param options - (Optional) See {@link DecoderOption}.
|
|
148
|
-
* @returns An array of index names.
|
|
149
|
-
*
|
|
150
|
-
* @example
|
|
151
|
-
* ```typescript
|
|
152
|
-
* console.log(await GlideFt.list(client)); // Output: ["index1", "index2"]
|
|
153
|
-
* ```
|
|
154
|
-
*/
|
|
155
|
-
static list(client, options) {
|
|
156
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
157
|
-
return _handleCustomCommand(client, ["FT._LIST"], options);
|
|
158
|
-
});
|
|
159
|
-
}
|
|
160
|
-
/**
|
|
161
|
-
* Runs a search query on an index, and perform aggregate transformations on the results.
|
|
162
|
-
*
|
|
163
|
-
* @param client - The client to execute the command.
|
|
164
|
-
* @param indexName - The index name.
|
|
165
|
-
* @param query - The text query to search.
|
|
166
|
-
* @param options - Additional parameters for the command - see {@link FtAggregateOptions} and {@link DecoderOption}.
|
|
167
|
-
* @returns Results of the last stage of the pipeline.
|
|
168
|
-
*
|
|
169
|
-
* @example
|
|
170
|
-
* ```typescript
|
|
171
|
-
* const options: FtAggregateOptions = {
|
|
172
|
-
* loadFields: ["__key"],
|
|
173
|
-
* clauses: [
|
|
174
|
-
* {
|
|
175
|
-
* type: "GROUPBY",
|
|
176
|
-
* properties: ["@condition"],
|
|
177
|
-
* reducers: [
|
|
178
|
-
* {
|
|
179
|
-
* function: "TOLIST",
|
|
180
|
-
* args: ["__key"],
|
|
181
|
-
* name: "bicycles",
|
|
182
|
-
* },
|
|
183
|
-
* ],
|
|
184
|
-
* },
|
|
185
|
-
* ],
|
|
186
|
-
* };
|
|
187
|
-
* const result = await GlideFt.aggregate(client, "myIndex", "*", options);
|
|
188
|
-
* console.log(result); // Output:
|
|
189
|
-
* // [
|
|
190
|
-
* // [
|
|
191
|
-
* // {
|
|
192
|
-
* // key: "condition",
|
|
193
|
-
* // value: "refurbished"
|
|
194
|
-
* // },
|
|
195
|
-
* // {
|
|
196
|
-
* // key: "bicycles",
|
|
197
|
-
* // value: [ "bicycle:9" ]
|
|
198
|
-
* // }
|
|
199
|
-
* // ],
|
|
200
|
-
* // [
|
|
201
|
-
* // {
|
|
202
|
-
* // key: "condition",
|
|
203
|
-
* // value: "used"
|
|
204
|
-
* // },
|
|
205
|
-
* // {
|
|
206
|
-
* // key: "bicycles",
|
|
207
|
-
* // value: [ "bicycle:1", "bicycle:2", "bicycle:3" ]
|
|
208
|
-
* // }
|
|
209
|
-
* // ],
|
|
210
|
-
* // [
|
|
211
|
-
* // {
|
|
212
|
-
* // key: "condition",
|
|
213
|
-
* // value: "new"
|
|
214
|
-
* // },
|
|
215
|
-
* // {
|
|
216
|
-
* // key: "bicycles",
|
|
217
|
-
* // value: [ "bicycle:0", "bicycle:5" ]
|
|
218
|
-
* // }
|
|
219
|
-
* // ]
|
|
220
|
-
* // ]
|
|
221
|
-
* ```
|
|
222
|
-
*/
|
|
223
|
-
static aggregate(client, indexName, query, options) {
|
|
224
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
225
|
-
const args = [
|
|
226
|
-
"FT.AGGREGATE",
|
|
227
|
-
indexName,
|
|
228
|
-
query,
|
|
229
|
-
..._addFtAggregateOptions(options),
|
|
230
|
-
];
|
|
231
|
-
return _handleCustomCommand(client, args, options);
|
|
232
|
-
});
|
|
233
|
-
}
|
|
234
|
-
/**
|
|
235
|
-
* Returns information about a given index.
|
|
236
|
-
*
|
|
237
|
-
* @param client - The client to execute the command.
|
|
238
|
-
* @param indexName - The index name.
|
|
239
|
-
* @param options - (Optional) See {@link DecoderOption}.
|
|
240
|
-
* @returns Nested maps with info about the index. See example for more details.
|
|
241
|
-
*
|
|
242
|
-
* @example
|
|
243
|
-
* ```typescript
|
|
244
|
-
* const info = await GlideFt.info(client, "myIndex");
|
|
245
|
-
* console.log(info); // Output:
|
|
246
|
-
* // {
|
|
247
|
-
* // index_name: 'myIndex',
|
|
248
|
-
* // index_status: 'AVAILABLE',
|
|
249
|
-
* // key_type: 'JSON',
|
|
250
|
-
* // creation_timestamp: 1728348101728771,
|
|
251
|
-
* // key_prefixes: [ 'json:' ],
|
|
252
|
-
* // num_indexed_vectors: 0,
|
|
253
|
-
* // space_usage: 653471,
|
|
254
|
-
* // num_docs: 0,
|
|
255
|
-
* // vector_space_usage: 653471,
|
|
256
|
-
* // index_degradation_percentage: 0,
|
|
257
|
-
* // fulltext_space_usage: 0,
|
|
258
|
-
* // current_lag: 0,
|
|
259
|
-
* // fields: [
|
|
260
|
-
* // {
|
|
261
|
-
* // identifier: '$.vec',
|
|
262
|
-
* // type: 'VECTOR',
|
|
263
|
-
* // field_name: 'VEC',
|
|
264
|
-
* // option: '',
|
|
265
|
-
* // vector_params: {
|
|
266
|
-
* // data_type: 'FLOAT32',
|
|
267
|
-
* // initial_capacity: 1000,
|
|
268
|
-
* // current_capacity: 1000,
|
|
269
|
-
* // distance_metric: 'L2',
|
|
270
|
-
* // dimension: 6,
|
|
271
|
-
* // block_size: 1024,
|
|
272
|
-
* // algorithm: 'FLAT'
|
|
273
|
-
* // }
|
|
274
|
-
* // },
|
|
275
|
-
* // {
|
|
276
|
-
* // identifier: 'name',
|
|
277
|
-
* // type: 'TEXT',
|
|
278
|
-
* // field_name: 'name',
|
|
279
|
-
* // option: ''
|
|
280
|
-
* // },
|
|
281
|
-
* // ]
|
|
282
|
-
* // }
|
|
283
|
-
* ```
|
|
284
|
-
*/
|
|
285
|
-
static info(client, indexName, options) {
|
|
286
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
287
|
-
const args = ["FT.INFO", indexName];
|
|
288
|
-
return _handleCustomCommand(client, args, options).then(BaseClient_1.convertGlideRecordToRecord);
|
|
289
|
-
});
|
|
290
|
-
}
|
|
291
|
-
/**
|
|
292
|
-
* Parse a query and return information about how that query was parsed.
|
|
293
|
-
*
|
|
294
|
-
* @param client - The client to execute the command.
|
|
295
|
-
* @param indexName - The index name.
|
|
296
|
-
* @param query - The text query to search. It is the same as the query passed as
|
|
297
|
-
* an argument to {@link search | FT.SEARCH} or {@link aggregate | FT.AGGREGATE}.
|
|
298
|
-
* @param options - (Optional) See {@link DecoderOption}.
|
|
299
|
-
* @returns A query execution plan.
|
|
300
|
-
*
|
|
301
|
-
* @example
|
|
302
|
-
* ```typescript
|
|
303
|
-
* const result = GlideFt.explain(client, "myIndex", "@price:[0 10]");
|
|
304
|
-
* console.log(result); // Output: "Field {\n\tprice\n\t0\n\t10\n}"
|
|
305
|
-
* ```
|
|
306
|
-
*/
|
|
307
|
-
static explain(client, indexName, query, options) {
|
|
308
|
-
const args = ["FT.EXPLAIN", indexName, query];
|
|
309
|
-
return _handleCustomCommand(client, args, options);
|
|
310
|
-
}
|
|
311
|
-
/**
|
|
312
|
-
* Parse a query and return information about how that query was parsed.
|
|
313
|
-
* Same as {@link explain | FT.EXPLAIN}, except that the results are
|
|
314
|
-
* displayed in a different format.
|
|
315
|
-
*
|
|
316
|
-
* @param client - The client to execute the command.
|
|
317
|
-
* @param indexName - The index name.
|
|
318
|
-
* @param query - The text query to search. It is the same as the query passed as
|
|
319
|
-
* an argument to {@link search | FT.SEARCH} or {@link aggregate | FT.AGGREGATE}.
|
|
320
|
-
* @param options - (Optional) See {@link DecoderOption}.
|
|
321
|
-
* @returns A query execution plan.
|
|
322
|
-
*
|
|
323
|
-
* @example
|
|
324
|
-
* ```typescript
|
|
325
|
-
* const result = GlideFt.explaincli(client, "myIndex", "@price:[0 10]");
|
|
326
|
-
* console.log(result); // Output: ["Field {", "price", "0", "10", "}"]
|
|
327
|
-
* ```
|
|
328
|
-
*/
|
|
329
|
-
static explaincli(client, indexName, query, options) {
|
|
330
|
-
const args = ["FT.EXPLAINCLI", indexName, query];
|
|
331
|
-
return _handleCustomCommand(client, args, options);
|
|
332
|
-
}
|
|
333
|
-
/**
|
|
334
|
-
* Uses the provided query expression to locate keys within an index. Once located, the count
|
|
335
|
-
* and/or content of indexed fields within those keys can be returned.
|
|
336
|
-
*
|
|
337
|
-
* @param client - The client to execute the command.
|
|
338
|
-
* @param indexName - The index name to search into.
|
|
339
|
-
* @param query - The text query to search.
|
|
340
|
-
* @param options - (Optional) See {@link FtSearchOptions} and {@link DecoderOption}.
|
|
341
|
-
* @returns A two-element array, where the first element is the number of documents in the result set, and the
|
|
342
|
-
* second element has the format: `GlideRecord<GlideRecord<GlideString>>`:
|
|
343
|
-
* a mapping between document names and a map of their attributes.
|
|
344
|
-
*
|
|
345
|
-
* If `count` or `limit` with values `{offset: 0, count: 0}` is
|
|
346
|
-
* set, the command returns array with only one element: the number of documents.
|
|
347
|
-
*
|
|
348
|
-
* @example
|
|
349
|
-
* ```typescript
|
|
350
|
-
* //
|
|
351
|
-
* const vector = Buffer.alloc(24);
|
|
352
|
-
* const result = await GlideFt.search(client, "json_idx1", "*=>[KNN 2 @VEC $query_vec]", {params: [{key: "query_vec", value: vector}]});
|
|
353
|
-
* console.log(result); // Output:
|
|
354
|
-
* // [
|
|
355
|
-
* // 2,
|
|
356
|
-
* // [
|
|
357
|
-
* // {
|
|
358
|
-
* // key: "json:2",
|
|
359
|
-
* // value: [
|
|
360
|
-
* // {
|
|
361
|
-
* // key: "$",
|
|
362
|
-
* // value: '{"vec":[1.1,1.2,1.3,1.4,1.5,1.6]}',
|
|
363
|
-
* // },
|
|
364
|
-
* // {
|
|
365
|
-
* // key: "__VEC_score",
|
|
366
|
-
* // value: "11.1100006104",
|
|
367
|
-
* // },
|
|
368
|
-
* // ],
|
|
369
|
-
* // },
|
|
370
|
-
* // {
|
|
371
|
-
* // key: "json:0",
|
|
372
|
-
* // value: [
|
|
373
|
-
* // {
|
|
374
|
-
* // key: "$",
|
|
375
|
-
* // value: '{"vec":[1,2,3,4,5,6]}',
|
|
376
|
-
* // },
|
|
377
|
-
* // {
|
|
378
|
-
* // key: "__VEC_score",
|
|
379
|
-
* // value: "91",
|
|
380
|
-
* // },
|
|
381
|
-
* // ],
|
|
382
|
-
* // },
|
|
383
|
-
* // ],
|
|
384
|
-
* // ]
|
|
385
|
-
* ```
|
|
386
|
-
*/
|
|
387
|
-
static search(client, indexName, query, options) {
|
|
388
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
389
|
-
const args = [
|
|
390
|
-
"FT.SEARCH",
|
|
391
|
-
indexName,
|
|
392
|
-
query,
|
|
393
|
-
..._addFtSearchOptions(options),
|
|
394
|
-
];
|
|
395
|
-
return _handleCustomCommand(client, args, options);
|
|
396
|
-
});
|
|
397
|
-
}
|
|
398
|
-
/**
|
|
399
|
-
* Runs a search query and collects performance profiling information.
|
|
400
|
-
*
|
|
401
|
-
* @param client - The client to execute the command.
|
|
402
|
-
* @param indexName - The index name.
|
|
403
|
-
* @param query - The text query to search.
|
|
404
|
-
* @param options - (Optional) See {@link FtSearchOptions} and {@link DecoderOption}. Additionally:
|
|
405
|
-
* - `limited` (Optional) - Either provide a full verbose output or some brief version.
|
|
406
|
-
*
|
|
407
|
-
* @returns A two-element array. The first element contains results of the search query being profiled, the
|
|
408
|
-
* second element stores profiling information.
|
|
409
|
-
*
|
|
410
|
-
* @example
|
|
411
|
-
* ```typescript
|
|
412
|
-
* // Example of running profile on a search query
|
|
413
|
-
* const vector = Buffer.alloc(24);
|
|
414
|
-
* const result = await GlideFt.profileSearch(client, "json_idx1", "*=>[KNN 2 @VEC $query_vec]", {params: [{key: "query_vec", value: vector}]});
|
|
415
|
-
* console.log(result); // Output:
|
|
416
|
-
* // result[0] contains `FT.SEARCH` response with the given query
|
|
417
|
-
* // result[1] contains profiling data as a `Record<string, number>`
|
|
418
|
-
* ```
|
|
419
|
-
*/
|
|
420
|
-
static profileSearch(client, indexName, query, options) {
|
|
421
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
422
|
-
const args = ["FT.PROFILE", indexName, "SEARCH"];
|
|
423
|
-
if (options === null || options === void 0 ? void 0 : options.limited) {
|
|
424
|
-
args.push("LIMITED");
|
|
425
|
-
}
|
|
426
|
-
args.push("QUERY", query);
|
|
427
|
-
if (options) {
|
|
428
|
-
args.push(..._addFtSearchOptions(options));
|
|
429
|
-
}
|
|
430
|
-
return _handleCustomCommand(client, args, options).then((v) => [v[0], (0, BaseClient_1.convertGlideRecordToRecord)(v[1])]);
|
|
431
|
-
});
|
|
432
|
-
}
|
|
433
|
-
/**
|
|
434
|
-
* Runs an aggregate query and collects performance profiling information.
|
|
435
|
-
*
|
|
436
|
-
* @param client - The client to execute the command.
|
|
437
|
-
* @param indexName - The index name.
|
|
438
|
-
* @param query - The text query to search.
|
|
439
|
-
* @param options - (Optional) See {@link FtAggregateOptions} and {@link DecoderOption}. Additionally:
|
|
440
|
-
* - `limited` (Optional) - Either provide a full verbose output or some brief version.
|
|
441
|
-
*
|
|
442
|
-
* @returns A two-element array. The first element contains results of the aggregate query being profiled, the
|
|
443
|
-
* second element stores profiling information.
|
|
444
|
-
*
|
|
445
|
-
* @example
|
|
446
|
-
* ```typescript
|
|
447
|
-
* // Example of running profile on an aggregate query
|
|
448
|
-
* const options: FtAggregateOptions = {
|
|
449
|
-
* loadFields: ["__key"],
|
|
450
|
-
* clauses: [
|
|
451
|
-
* {
|
|
452
|
-
* type: "GROUPBY",
|
|
453
|
-
* properties: ["@condition"],
|
|
454
|
-
* reducers: [
|
|
455
|
-
* {
|
|
456
|
-
* function: "TOLIST",
|
|
457
|
-
* args: ["__key"],
|
|
458
|
-
* name: "bicycles",
|
|
459
|
-
* },
|
|
460
|
-
* ],
|
|
461
|
-
* },
|
|
462
|
-
* ],
|
|
463
|
-
* };
|
|
464
|
-
* const result = await GlideFt.profileAggregate(client, "myIndex", "*", options);
|
|
465
|
-
* console.log(result); // Output:
|
|
466
|
-
* // result[0] contains `FT.AGGREGATE` response with the given query
|
|
467
|
-
* // result[1] contains profiling data as a `Record<string, number>`
|
|
468
|
-
* ```
|
|
469
|
-
*/
|
|
470
|
-
static profileAggregate(client, indexName, query, options) {
|
|
471
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
472
|
-
const args = ["FT.PROFILE", indexName, "AGGREGATE"];
|
|
473
|
-
if (options === null || options === void 0 ? void 0 : options.limited) {
|
|
474
|
-
args.push("LIMITED");
|
|
475
|
-
}
|
|
476
|
-
args.push("QUERY", query);
|
|
477
|
-
if (options) {
|
|
478
|
-
args.push(..._addFtAggregateOptions(options));
|
|
479
|
-
}
|
|
480
|
-
return _handleCustomCommand(client, args, options).then((v) => [v[0], (0, BaseClient_1.convertGlideRecordToRecord)(v[1])]);
|
|
481
|
-
});
|
|
482
|
-
}
|
|
483
|
-
/**
|
|
484
|
-
* Adds an alias for an index. The new alias name can be used anywhere that an index name is required.
|
|
485
|
-
*
|
|
486
|
-
* @param client - The client to execute the command.
|
|
487
|
-
* @param indexName - The alias to be added to the index.
|
|
488
|
-
* @param alias - The index name for which the alias has to be added.
|
|
489
|
-
* @returns `"OK"`
|
|
490
|
-
*
|
|
491
|
-
* @example
|
|
492
|
-
* ```typescript
|
|
493
|
-
* // Example usage of FT.ALIASADD to add an alias for an index.
|
|
494
|
-
* await GlideFt.aliasadd(client, "index", "alias"); // "OK"
|
|
495
|
-
* ```
|
|
496
|
-
*/
|
|
497
|
-
static aliasadd(client, indexName, alias) {
|
|
498
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
499
|
-
const args = ["FT.ALIASADD", alias, indexName];
|
|
500
|
-
return _handleCustomCommand(client, args, {
|
|
501
|
-
decoder: BaseClient_1.Decoder.String,
|
|
502
|
-
});
|
|
503
|
-
});
|
|
504
|
-
}
|
|
505
|
-
/**
|
|
506
|
-
* Deletes an existing alias for an index.
|
|
507
|
-
*
|
|
508
|
-
* @param client - The client to execute the command.
|
|
509
|
-
* @param alias - The existing alias to be deleted for an index.
|
|
510
|
-
* @returns `"OK"`
|
|
511
|
-
*
|
|
512
|
-
* @example
|
|
513
|
-
* ```typescript
|
|
514
|
-
* // Example usage of FT.ALIASDEL to delete an existing alias.
|
|
515
|
-
* await GlideFt.aliasdel(client, "alias"); // "OK"
|
|
516
|
-
* ```
|
|
517
|
-
*/
|
|
518
|
-
static aliasdel(client, alias) {
|
|
519
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
520
|
-
const args = ["FT.ALIASDEL", alias];
|
|
521
|
-
return _handleCustomCommand(client, args, {
|
|
522
|
-
decoder: BaseClient_1.Decoder.String,
|
|
523
|
-
});
|
|
524
|
-
});
|
|
525
|
-
}
|
|
526
|
-
/**
|
|
527
|
-
* Updates an existing alias to point to a different physical index. This command only affects future references to the alias.
|
|
528
|
-
*
|
|
529
|
-
* @param client - The client to execute the command.
|
|
530
|
-
* @param alias - The alias name. This alias will now be pointed to a different index.
|
|
531
|
-
* @param indexName - The index name for which an existing alias has to updated.
|
|
532
|
-
* @returns `"OK"`
|
|
533
|
-
*
|
|
534
|
-
* @example
|
|
535
|
-
* ```typescript
|
|
536
|
-
* // Example usage of FT.ALIASUPDATE to update an alias to point to a different index.
|
|
537
|
-
* await GlideFt.aliasupdate(client, "newAlias", "index"); // "OK"
|
|
538
|
-
* ```
|
|
539
|
-
*/
|
|
540
|
-
static aliasupdate(client, alias, indexName) {
|
|
541
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
542
|
-
const args = ["FT.ALIASUPDATE", alias, indexName];
|
|
543
|
-
return _handleCustomCommand(client, args, {
|
|
544
|
-
decoder: BaseClient_1.Decoder.String,
|
|
545
|
-
});
|
|
546
|
-
});
|
|
547
|
-
}
|
|
548
|
-
/**
|
|
549
|
-
* List the index aliases.
|
|
550
|
-
*
|
|
551
|
-
* @param client - The client to execute the command.
|
|
552
|
-
* @param options - (Optional) See {@link DecoderOption}.
|
|
553
|
-
* @returns A map of index aliases for indices being aliased.
|
|
554
|
-
*
|
|
555
|
-
* @example
|
|
556
|
-
* ```typescript
|
|
557
|
-
* // Example usage of FT._ALIASLIST to query index aliases
|
|
558
|
-
* const result = await GlideFt.aliaslist(client);
|
|
559
|
-
* console.log(result); // Output:
|
|
560
|
-
* //[{"key": "alias1", "value": "index1"}, {"key": "alias2", "value": "index2"}]
|
|
561
|
-
* ```
|
|
562
|
-
*/
|
|
563
|
-
static aliaslist(client, options) {
|
|
564
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
565
|
-
const args = ["FT._ALIASLIST"];
|
|
566
|
-
return _handleCustomCommand(client, args, options);
|
|
567
|
-
});
|
|
568
|
-
}
|
|
569
|
-
}
|
|
570
|
-
exports.GlideFt = GlideFt;
|
|
571
|
-
/**
|
|
572
|
-
* @internal
|
|
573
|
-
*/
|
|
574
|
-
function _addFtAggregateOptions(options) {
|
|
575
|
-
if (!options)
|
|
576
|
-
return [];
|
|
577
|
-
const args = [];
|
|
578
|
-
if (options.loadAll)
|
|
579
|
-
args.push("LOAD", "*");
|
|
580
|
-
else if (options.loadFields)
|
|
581
|
-
args.push("LOAD", options.loadFields.length.toString(), ...options.loadFields);
|
|
582
|
-
if (options.timeout)
|
|
583
|
-
args.push("TIMEOUT", options.timeout.toString());
|
|
584
|
-
if (options.params) {
|
|
585
|
-
args.push("PARAMS", (options.params.length * 2).toString(), ...options.params.flatMap((param) => [param.key, param.value]));
|
|
586
|
-
}
|
|
587
|
-
if (options.clauses) {
|
|
588
|
-
for (const clause of options.clauses) {
|
|
589
|
-
switch (clause.type) {
|
|
590
|
-
case "LIMIT":
|
|
591
|
-
args.push(clause.type, clause.offset.toString(), clause.count.toString());
|
|
592
|
-
break;
|
|
593
|
-
case "FILTER":
|
|
594
|
-
args.push(clause.type, clause.expression);
|
|
595
|
-
break;
|
|
596
|
-
case "GROUPBY":
|
|
597
|
-
args.push(clause.type, clause.properties.length.toString(), ...clause.properties);
|
|
598
|
-
for (const reducer of clause.reducers) {
|
|
599
|
-
args.push("REDUCE", reducer.function, reducer.args.length.toString(), ...reducer.args);
|
|
600
|
-
if (reducer.name)
|
|
601
|
-
args.push("AS", reducer.name);
|
|
602
|
-
}
|
|
603
|
-
break;
|
|
604
|
-
case "SORTBY":
|
|
605
|
-
args.push(clause.type, (clause.properties.length * 2).toString());
|
|
606
|
-
for (const property of clause.properties)
|
|
607
|
-
args.push(property.property, property.order);
|
|
608
|
-
if (clause.max)
|
|
609
|
-
args.push("MAX", clause.max.toString());
|
|
610
|
-
break;
|
|
611
|
-
case "APPLY":
|
|
612
|
-
args.push(clause.type, clause.expression, "AS", clause.name);
|
|
613
|
-
break;
|
|
614
|
-
default:
|
|
615
|
-
throw new Error("Unknown clause type in FtAggregateOptions");
|
|
616
|
-
}
|
|
617
|
-
}
|
|
618
|
-
}
|
|
619
|
-
return args;
|
|
620
|
-
}
|
|
621
|
-
/**
|
|
622
|
-
* @internal
|
|
623
|
-
*/
|
|
624
|
-
function _addFtSearchOptions(options) {
|
|
625
|
-
if (!options)
|
|
626
|
-
return [];
|
|
627
|
-
const args = [];
|
|
628
|
-
// RETURN
|
|
629
|
-
if (options.returnFields) {
|
|
630
|
-
const returnFields = [];
|
|
631
|
-
options.returnFields.forEach((returnField) => returnField.alias
|
|
632
|
-
? returnFields.push(returnField.fieldIdentifier, "AS", returnField.alias)
|
|
633
|
-
: returnFields.push(returnField.fieldIdentifier));
|
|
634
|
-
args.push("RETURN", returnFields.length.toString(), ...returnFields);
|
|
635
|
-
}
|
|
636
|
-
// TIMEOUT
|
|
637
|
-
if (options.timeout) {
|
|
638
|
-
args.push("TIMEOUT", options.timeout.toString());
|
|
639
|
-
}
|
|
640
|
-
// PARAMS
|
|
641
|
-
if (options.params) {
|
|
642
|
-
args.push("PARAMS", (options.params.length * 2).toString(), ...options.params.flatMap((param) => [param.key, param.value]));
|
|
643
|
-
}
|
|
644
|
-
// LIMIT
|
|
645
|
-
if (options.limit) {
|
|
646
|
-
args.push("LIMIT", options.limit.offset.toString(), options.limit.count.toString());
|
|
647
|
-
}
|
|
648
|
-
// COUNT
|
|
649
|
-
if (options.count) {
|
|
650
|
-
args.push("COUNT");
|
|
651
|
-
}
|
|
652
|
-
return args;
|
|
653
|
-
}
|
|
654
|
-
/**
|
|
655
|
-
* @internal
|
|
656
|
-
*/
|
|
657
|
-
function _handleCustomCommand(client_1, args_1) {
|
|
658
|
-
return __awaiter(this, arguments, void 0, function* (client, args, decoderOption = {}) {
|
|
659
|
-
return client instanceof GlideClient_1.GlideClient
|
|
660
|
-
? client.customCommand(args, decoderOption)
|
|
661
|
-
: client.customCommand(args, decoderOption);
|
|
662
|
-
});
|
|
663
|
-
}
|
|
664
|
-
//# sourceMappingURL=GlideFt.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"GlideFt.js","sourceRoot":"","sources":["../../../src/server-modules/GlideFt.ts"],"names":[],"mappings":"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"}
|