redis-vl 0.1.0 → 0.2.2
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 +1 -1
- package/dist/index.d.ts +14 -13
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -6
- package/dist/index.js.map +1 -1
- package/dist/indexes/search-index.d.ts +29 -4
- package/dist/indexes/search-index.d.ts.map +1 -1
- package/dist/indexes/search-index.js +43 -16
- package/dist/indexes/search-index.js.map +1 -1
- package/dist/query/{aggregation.d.ts → aggregate/aggregation.d.ts} +1 -1
- package/dist/query/aggregate/aggregation.d.ts.map +1 -0
- package/dist/query/{aggregation.js → aggregate/aggregation.js} +2 -2
- package/dist/query/aggregate/aggregation.js.map +1 -0
- package/dist/query/hybrid.d.ts +10 -4
- package/dist/query/hybrid.d.ts.map +1 -1
- package/dist/query/hybrid.js +14 -10
- package/dist/query/hybrid.js.map +1 -1
- package/dist/query/index.d.ts +7 -7
- package/dist/query/index.d.ts.map +1 -1
- package/dist/query/index.js +7 -7
- package/dist/query/index.js.map +1 -1
- package/dist/query/search/base.d.ts +166 -0
- package/dist/query/search/base.d.ts.map +1 -0
- package/dist/query/search/base.js +191 -0
- package/dist/query/search/base.js.map +1 -0
- package/dist/query/{count.d.ts → search/count.d.ts} +2 -6
- package/dist/query/search/count.d.ts.map +1 -0
- package/dist/query/{count.js → search/count.js} +3 -9
- package/dist/query/search/count.js.map +1 -0
- package/dist/query/{filter-query.d.ts → search/filter-query.d.ts} +3 -8
- package/dist/query/search/filter-query.d.ts.map +1 -0
- package/dist/query/{filter-query.js → search/filter-query.js} +10 -14
- package/dist/query/search/filter-query.js.map +1 -0
- package/dist/query/{range.d.ts → search/range.d.ts} +4 -16
- package/dist/query/search/range.d.ts.map +1 -0
- package/dist/query/{range.js → search/range.js} +8 -35
- package/dist/query/search/range.js.map +1 -0
- package/dist/query/{text.d.ts → search/text.d.ts} +5 -9
- package/dist/query/search/text.d.ts.map +1 -0
- package/dist/query/{text.js → search/text.js} +13 -14
- package/dist/query/search/text.js.map +1 -0
- package/dist/query/{vector.d.ts → search/vector.d.ts} +7 -33
- package/dist/query/search/vector.d.ts.map +1 -0
- package/dist/query/{vector.js → search/vector.js} +8 -37
- package/dist/query/search/vector.js.map +1 -0
- package/dist/redis/client-types.d.ts +1 -1
- package/dist/redis/client-types.js +1 -1
- package/dist/schema/schema.d.ts +2 -2
- package/dist/storage/base-storage.d.ts +0 -1
- package/dist/storage/base-storage.d.ts.map +1 -1
- package/dist/storage/base-storage.js.map +1 -1
- package/package.json +13 -13
- package/dist/query/aggregation.d.ts.map +0 -1
- package/dist/query/aggregation.js.map +0 -1
- package/dist/query/base.d.ts +0 -77
- package/dist/query/base.d.ts.map +0 -1
- package/dist/query/base.js +0 -14
- package/dist/query/base.js.map +0 -1
- package/dist/query/count.d.ts.map +0 -1
- package/dist/query/count.js.map +0 -1
- package/dist/query/filter-query.d.ts.map +0 -1
- package/dist/query/filter-query.js.map +0 -1
- package/dist/query/range.d.ts.map +0 -1
- package/dist/query/range.js.map +0 -1
- package/dist/query/text.d.ts.map +0 -1
- package/dist/query/text.js.map +0 -1
- package/dist/query/vector.d.ts.map +0 -1
- package/dist/query/vector.js.map +0 -1
- package/dist/redis/protocol.d.ts +0 -34
- package/dist/redis/protocol.d.ts.map +0 -1
- package/dist/redis/protocol.js +0 -47
- package/dist/redis/protocol.js.map +0 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { renderFilter } from './base.js';
|
|
2
|
-
import { VectorDistanceMetric } from '
|
|
3
|
-
import { QueryValidationError
|
|
4
|
-
import { encodeVectorBuffer
|
|
1
|
+
import { BaseVectorQuery, renderFilter, } from './base.js';
|
|
2
|
+
import { VectorDistanceMetric } from '../../schema/types.js';
|
|
3
|
+
import { QueryValidationError } from '../../errors.js';
|
|
4
|
+
import { encodeVectorBuffer } from '../../redis/utils.js';
|
|
5
5
|
/**
|
|
6
6
|
* Vector similarity search by distance threshold rather than top-K.
|
|
7
7
|
*
|
|
@@ -22,27 +22,14 @@ import { encodeVectorBuffer, normalizeVectorDataType } from '../redis/utils.js';
|
|
|
22
22
|
* const results = await index.search(q);
|
|
23
23
|
* ```
|
|
24
24
|
*/
|
|
25
|
-
export class VectorRangeQuery {
|
|
26
|
-
vector;
|
|
27
|
-
vectorField;
|
|
25
|
+
export class VectorRangeQuery extends BaseVectorQuery {
|
|
28
26
|
distanceThreshold;
|
|
29
|
-
filter;
|
|
30
|
-
returnFields;
|
|
31
27
|
distanceMetric;
|
|
32
|
-
datatype;
|
|
33
|
-
offset;
|
|
34
|
-
limit;
|
|
35
28
|
scoreAlias;
|
|
36
29
|
hybridPolicy;
|
|
37
30
|
batchSize;
|
|
38
|
-
normalizeDistance;
|
|
39
31
|
constructor(config) {
|
|
40
|
-
|
|
41
|
-
throw new QueryValidationError('Vector cannot be empty');
|
|
42
|
-
}
|
|
43
|
-
if (!config.vectorField) {
|
|
44
|
-
throw new QueryValidationError('vectorField is required');
|
|
45
|
-
}
|
|
32
|
+
super(config);
|
|
46
33
|
if (config.distanceThreshold !== undefined && config.distanceThreshold < 0) {
|
|
47
34
|
throw new QueryValidationError('distanceThreshold must be non-negative');
|
|
48
35
|
}
|
|
@@ -59,27 +46,12 @@ export class VectorRangeQuery {
|
|
|
59
46
|
throw new QueryValidationError('batchSize must be positive');
|
|
60
47
|
}
|
|
61
48
|
}
|
|
62
|
-
this.vector = config.vector;
|
|
63
|
-
this.vectorField = config.vectorField;
|
|
64
49
|
this.distanceThreshold = config.distanceThreshold ?? 0.2;
|
|
65
|
-
this.filter = config.filter;
|
|
66
|
-
this.returnFields = config.returnFields;
|
|
67
50
|
this.distanceMetric = config.distanceMetric ?? VectorDistanceMetric.COSINE;
|
|
68
|
-
try {
|
|
69
|
-
this.datatype = normalizeVectorDataType(config.datatype);
|
|
70
|
-
}
|
|
71
|
-
catch (error) {
|
|
72
|
-
if (error instanceof SchemaValidationError) {
|
|
73
|
-
throw new QueryValidationError(error.message);
|
|
74
|
-
}
|
|
75
|
-
throw error;
|
|
76
|
-
}
|
|
77
|
-
this.offset = config.offset;
|
|
78
|
-
this.limit = config.limit;
|
|
79
51
|
this.scoreAlias = config.scoreAlias ?? 'vector_distance';
|
|
80
52
|
this.hybridPolicy = config.hybridPolicy;
|
|
81
53
|
this.batchSize = config.batchSize;
|
|
82
|
-
this.
|
|
54
|
+
this.sortBy(this.scoreAlias);
|
|
83
55
|
}
|
|
84
56
|
buildQuery() {
|
|
85
57
|
const rangeClause = `@${this.vectorField}:[VECTOR_RANGE $distance_threshold $vector]=>{$yield_distance_as: ${this.scoreAlias}}`;
|
|
@@ -91,6 +63,7 @@ export class VectorRangeQuery {
|
|
|
91
63
|
}
|
|
92
64
|
buildParams() {
|
|
93
65
|
const params = {
|
|
66
|
+
...super.buildParams(),
|
|
94
67
|
vector: encodeVectorBuffer(this.vector, this.datatype),
|
|
95
68
|
distance_threshold: this.distanceThreshold,
|
|
96
69
|
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"range.js","sourceRoot":"","sources":["../../../src/query/search/range.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { type StopwordsInput } from '
|
|
1
|
+
import { BaseQuery, type FilterInput } from './base.js';
|
|
2
|
+
import { type StopwordsInput } from '../../utils/stopwords/resolve.js';
|
|
3
3
|
/**
|
|
4
4
|
* A Redis Search built-in text scorer.
|
|
5
5
|
* @see https://redis.io/docs/latest/develop/interact/search-and-query/advanced-concepts/scoring/
|
|
@@ -26,11 +26,11 @@ export interface TextQueryConfig {
|
|
|
26
26
|
filter?: FilterInput;
|
|
27
27
|
/** Fields to include in each result document. */
|
|
28
28
|
returnFields?: string[];
|
|
29
|
-
/** Number of results to return. Defaults to 10. */
|
|
29
|
+
/** Number of results to return. Default for `limit` (the `LIMIT` count). Defaults to 10. */
|
|
30
30
|
numResults?: number;
|
|
31
31
|
/** Pagination offset. */
|
|
32
32
|
offset?: number;
|
|
33
|
-
/**
|
|
33
|
+
/** `LIMIT` count. Takes priority over `numResults`. */
|
|
34
34
|
limit?: number;
|
|
35
35
|
/**
|
|
36
36
|
* Per-token weight map. Keys are individual words (no inner whitespace) and
|
|
@@ -96,7 +96,7 @@ export interface TextQueryConfig {
|
|
|
96
96
|
* });
|
|
97
97
|
* ```
|
|
98
98
|
*/
|
|
99
|
-
export declare class TextQuery
|
|
99
|
+
export declare class TextQuery extends BaseQuery {
|
|
100
100
|
readonly text: string;
|
|
101
101
|
/**
|
|
102
102
|
* Per-field weights. Iteration follows insertion order, which determines
|
|
@@ -107,11 +107,7 @@ export declare class TextQuery implements BaseQuery {
|
|
|
107
107
|
/** Per-token weights. Keys are normalised to lowercase, whitespace-trimmed single tokens. */
|
|
108
108
|
readonly textWeights: Readonly<Record<string, number>>;
|
|
109
109
|
readonly textScorer: TextScorer;
|
|
110
|
-
readonly filter?: FilterInput;
|
|
111
|
-
readonly returnFields?: string[];
|
|
112
110
|
readonly numResults: number;
|
|
113
|
-
readonly offset?: number;
|
|
114
|
-
readonly limit?: number;
|
|
115
111
|
readonly stopwords: ReadonlySet<string> | null;
|
|
116
112
|
constructor(config: TextQueryConfig);
|
|
117
113
|
buildQuery(): string;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../../src/query/search/text.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAgB,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;AAGtE,OAAO,EAAoB,KAAK,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAezF;;;GAGG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,eAAe,GAAG,QAAQ,GAAG,UAAU,CAAC;AAEhG;;GAEG;AACH,MAAM,WAAW,eAAe;IAC5B,sIAAsI;IACtI,IAAI,EAAE,MAAM,CAAC;IAEb;;;;OAIG;IACH,aAAa,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE/C;;;OAGG;IACH,UAAU,CAAC,EAAE,UAAU,CAAC;IAExB,wEAAwE;IACxE,MAAM,CAAC,EAAE,WAAW,CAAC;IAErB,iDAAiD;IACjD,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IAExB,4FAA4F;IAC5F,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,yBAAyB;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,uDAAuD;IACvD,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;;;;;;;OASG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAErC;;;;;;;;;;OAUG;IACH,SAAS,CAAC,EAAE,cAAc,CAAC;CAC9B;AA+DD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,qBAAa,SAAU,SAAQ,SAAS;IACpC,SAAgB,IAAI,EAAE,MAAM,CAAC;IAC7B;;;;OAIG;IACH,SAAgB,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC/D,6FAA6F;IAC7F,SAAgB,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC9D,SAAgB,UAAU,EAAE,UAAU,CAAC;IACvC,SAAgB,UAAU,EAAE,MAAM,CAAC;IACnC,SAAgB,SAAS,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;gBAE1C,MAAM,EAAE,eAAe;IAgBnC,UAAU,IAAI,MAAM;IAqCpB,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAItC;;;;;OAKG;IACH,IAAI,aAAa,IAAI,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAS7D;CACJ"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { renderFilter } from './base.js';
|
|
2
|
-
import { TokenEscaper } from '
|
|
3
|
-
import { QueryValidationError } from '
|
|
4
|
-
import { resolveStopwords } from '
|
|
1
|
+
import { BaseQuery, renderFilter } from './base.js';
|
|
2
|
+
import { TokenEscaper } from '../../utils/token-escaper.js';
|
|
3
|
+
import { QueryValidationError } from '../../errors.js';
|
|
4
|
+
import { resolveStopwords } from '../../utils/stopwords/resolve.js';
|
|
5
5
|
const escaper = new TokenEscaper();
|
|
6
6
|
const STRIP_LEADING_TRAILING_COMMAS = /^,+|,+$/g;
|
|
7
7
|
const TYPOGRAPHIC_QUOTES = /[“”]/g;
|
|
@@ -100,7 +100,7 @@ function parseTextWeights(weights) {
|
|
|
100
100
|
* });
|
|
101
101
|
* ```
|
|
102
102
|
*/
|
|
103
|
-
export class TextQuery {
|
|
103
|
+
export class TextQuery extends BaseQuery {
|
|
104
104
|
text;
|
|
105
105
|
/**
|
|
106
106
|
* Per-field weights. Iteration follows insertion order, which determines
|
|
@@ -111,22 +111,21 @@ export class TextQuery {
|
|
|
111
111
|
/** Per-token weights. Keys are normalised to lowercase, whitespace-trimmed single tokens. */
|
|
112
112
|
textWeights;
|
|
113
113
|
textScorer;
|
|
114
|
-
filter;
|
|
115
|
-
returnFields;
|
|
116
114
|
numResults;
|
|
117
|
-
offset;
|
|
118
|
-
limit;
|
|
119
115
|
stopwords;
|
|
120
116
|
constructor(config) {
|
|
117
|
+
const numResults = config.numResults ?? 10;
|
|
118
|
+
super({
|
|
119
|
+
filter: config.filter,
|
|
120
|
+
returnFields: config.returnFields,
|
|
121
|
+
offset: config.offset,
|
|
122
|
+
limit: config.limit ?? numResults,
|
|
123
|
+
});
|
|
121
124
|
this.text = config.text;
|
|
122
125
|
this.fieldWeights = parseFieldWeights(config.textFieldName);
|
|
123
126
|
this.textWeights = parseTextWeights(config.textWeights);
|
|
124
127
|
this.textScorer = config.textScorer ?? 'BM25STD';
|
|
125
|
-
this.
|
|
126
|
-
this.returnFields = config.returnFields;
|
|
127
|
-
this.numResults = config.numResults ?? 10;
|
|
128
|
-
this.offset = config.offset;
|
|
129
|
-
this.limit = config.limit ?? this.numResults;
|
|
128
|
+
this.numResults = numResults;
|
|
130
129
|
this.stopwords = resolveStopwords(config.stopwords);
|
|
131
130
|
}
|
|
132
131
|
buildQuery() {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"text.js","sourceRoot":"","sources":["../../../src/query/search/text.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { BaseVectorQuery, type BaseVectorQueryConfig } from './base.js';
|
|
2
|
+
import { VectorDistanceMetric } from '../../schema/types.js';
|
|
3
3
|
/**
|
|
4
4
|
* Hybrid policy options for vector search with filters
|
|
5
5
|
*/
|
|
@@ -11,32 +11,14 @@ export type UseSearchHistory = 'OFF' | 'ON' | 'AUTO';
|
|
|
11
11
|
/**
|
|
12
12
|
* Configuration for VectorQuery
|
|
13
13
|
*/
|
|
14
|
-
export interface VectorQueryConfig {
|
|
15
|
-
/** Vector to search with */
|
|
16
|
-
vector: number[];
|
|
17
|
-
/** Name of the vector field in the index */
|
|
18
|
-
vectorField: string;
|
|
19
|
-
/** Number of results to return */
|
|
20
|
-
numResults?: number;
|
|
14
|
+
export interface VectorQueryConfig extends BaseVectorQueryConfig {
|
|
21
15
|
/**
|
|
22
|
-
*
|
|
23
|
-
*
|
|
16
|
+
* Number of nearest neighbours to retrieve (the `KNN <k>` clause).
|
|
17
|
+
* Also the default for `limit`. Defaults to 10.
|
|
24
18
|
*/
|
|
25
|
-
|
|
26
|
-
/** Fields to return in results */
|
|
27
|
-
returnFields?: string[];
|
|
19
|
+
numResults?: number;
|
|
28
20
|
/** Distance metric to use */
|
|
29
21
|
distanceMetric?: VectorDistanceMetric;
|
|
30
|
-
/**
|
|
31
|
-
* Vector datatype to use when serializing the query vector.
|
|
32
|
-
* Must match the datatype declared on the schema's vector field.
|
|
33
|
-
* @default 'FLOAT32'
|
|
34
|
-
*/
|
|
35
|
-
datatype?: VectorDataType | string;
|
|
36
|
-
/** Pagination offset */
|
|
37
|
-
offset?: number;
|
|
38
|
-
/** Pagination limit */
|
|
39
|
-
limit?: number;
|
|
40
22
|
/**
|
|
41
23
|
* Alias for the score field in results
|
|
42
24
|
* @default 'vector_distance'
|
|
@@ -155,21 +137,13 @@ export interface VectorQueryConfig {
|
|
|
155
137
|
* const results = await index.search(query);
|
|
156
138
|
* ```
|
|
157
139
|
*/
|
|
158
|
-
export declare class VectorQuery
|
|
159
|
-
readonly vector: number[];
|
|
160
|
-
readonly vectorField: string;
|
|
140
|
+
export declare class VectorQuery extends BaseVectorQuery {
|
|
161
141
|
readonly numResults: number;
|
|
162
|
-
readonly filter?: FilterInput;
|
|
163
|
-
readonly returnFields?: string[];
|
|
164
142
|
readonly distanceMetric: VectorDistanceMetric;
|
|
165
|
-
readonly datatype: VectorDataType;
|
|
166
|
-
readonly offset?: number;
|
|
167
|
-
readonly limit?: number;
|
|
168
143
|
readonly scoreAlias: string;
|
|
169
144
|
readonly efRuntime?: number;
|
|
170
145
|
readonly hybridPolicy?: HybridPolicy;
|
|
171
146
|
readonly batchSize?: number;
|
|
172
|
-
readonly normalizeDistance: boolean;
|
|
173
147
|
readonly searchWindowSize?: number;
|
|
174
148
|
readonly useSearchHistory?: UseSearchHistory;
|
|
175
149
|
readonly searchBufferCapacity?: number;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vector.d.ts","sourceRoot":"","sources":["../../../src/query/search/vector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAgB,KAAK,qBAAqB,EAAE,MAAM,WAAW,CAAC;AACtF,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAI7D;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,UAAU,CAAC;AAElD;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,KAAK,GAAG,IAAI,GAAG,MAAM,CAAC;AAErD;;GAEG;AACH,MAAM,WAAW,iBAAkB,SAAQ,qBAAqB;IAC5D;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,6BAA6B;IAC7B,cAAc,CAAC,EAAE,oBAAoB,CAAC;IAEtC;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;;;OAKG;IACH,YAAY,CAAC,EAAE,YAAY,CAAC;IAE5B;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;;;;;;;;;;;;;;OAgBG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAE5B;;;;;;;;;OASG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;;;;;;;;;;;;;OAcG;IACH,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IAEpC;;;;;;;;;;;;OAYG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;CACjC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,qBAAa,WAAY,SAAQ,eAAe;IAC5C,SAAgB,UAAU,EAAE,MAAM,CAAC;IACnC,SAAgB,cAAc,EAAE,oBAAoB,CAAC;IACrD,SAAgB,UAAU,EAAE,MAAM,CAAC;IACnC,SAAgB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnC,SAAgB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5C,SAAgB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnC,SAAgB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1C,SAAgB,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpD,SAAgB,oBAAoB,CAAC,EAAE,MAAM,CAAC;gBAElC,MAAM,EAAE,iBAAiB;IA4DrC;;;;;;;;OAQG;IACH,UAAU,IAAI,MAAM;IA6BpB;;;;;;;OAOG;IACH,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAuBzC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { renderFilter } from './base.js';
|
|
2
|
-
import { VectorDistanceMetric } from '
|
|
3
|
-
import { QueryValidationError
|
|
4
|
-
import { encodeVectorBuffer
|
|
1
|
+
import { BaseVectorQuery, renderFilter } from './base.js';
|
|
2
|
+
import { VectorDistanceMetric } from '../../schema/types.js';
|
|
3
|
+
import { QueryValidationError } from '../../errors.js';
|
|
4
|
+
import { encodeVectorBuffer } from '../../redis/utils.js';
|
|
5
5
|
/**
|
|
6
6
|
* Vector similarity search query using KNN (K-Nearest Neighbors)
|
|
7
7
|
*
|
|
@@ -35,33 +35,18 @@ import { encodeVectorBuffer, normalizeVectorDataType } from '../redis/utils.js';
|
|
|
35
35
|
* const results = await index.search(query);
|
|
36
36
|
* ```
|
|
37
37
|
*/
|
|
38
|
-
export class VectorQuery {
|
|
39
|
-
vector;
|
|
40
|
-
vectorField;
|
|
38
|
+
export class VectorQuery extends BaseVectorQuery {
|
|
41
39
|
numResults;
|
|
42
|
-
filter;
|
|
43
|
-
returnFields;
|
|
44
40
|
distanceMetric;
|
|
45
|
-
datatype;
|
|
46
|
-
offset;
|
|
47
|
-
limit;
|
|
48
41
|
scoreAlias;
|
|
49
42
|
efRuntime;
|
|
50
43
|
hybridPolicy;
|
|
51
44
|
batchSize;
|
|
52
|
-
normalizeDistance;
|
|
53
45
|
searchWindowSize;
|
|
54
46
|
useSearchHistory;
|
|
55
47
|
searchBufferCapacity;
|
|
56
48
|
constructor(config) {
|
|
57
|
-
|
|
58
|
-
if (!config.vector || config.vector.length === 0) {
|
|
59
|
-
throw new QueryValidationError('Vector cannot be empty');
|
|
60
|
-
}
|
|
61
|
-
// Validate vectorField
|
|
62
|
-
if (!config.vectorField) {
|
|
63
|
-
throw new QueryValidationError('vectorField is required');
|
|
64
|
-
}
|
|
49
|
+
super({ ...config, limit: config.limit ?? config.numResults ?? 10 });
|
|
65
50
|
// Validate HNSW parameters
|
|
66
51
|
if (config.efRuntime !== undefined && config.efRuntime <= 0) {
|
|
67
52
|
throw new QueryValidationError('efRuntime must be positive');
|
|
@@ -98,31 +83,16 @@ export class VectorQuery {
|
|
|
98
83
|
if (config.searchBufferCapacity !== undefined && config.searchBufferCapacity <= 0) {
|
|
99
84
|
throw new QueryValidationError('searchBufferCapacity must be positive');
|
|
100
85
|
}
|
|
101
|
-
this.vector = config.vector;
|
|
102
|
-
this.vectorField = config.vectorField;
|
|
103
86
|
this.numResults = config.numResults ?? 10;
|
|
104
|
-
this.filter = config.filter;
|
|
105
|
-
this.returnFields = config.returnFields;
|
|
106
87
|
this.distanceMetric = config.distanceMetric ?? VectorDistanceMetric.COSINE;
|
|
107
|
-
try {
|
|
108
|
-
this.datatype = normalizeVectorDataType(config.datatype);
|
|
109
|
-
}
|
|
110
|
-
catch (error) {
|
|
111
|
-
if (error instanceof SchemaValidationError) {
|
|
112
|
-
throw new QueryValidationError(error.message);
|
|
113
|
-
}
|
|
114
|
-
throw error;
|
|
115
|
-
}
|
|
116
|
-
this.offset = config.offset;
|
|
117
|
-
this.limit = config.limit;
|
|
118
88
|
this.scoreAlias = config.scoreAlias ?? 'vector_distance';
|
|
119
89
|
this.efRuntime = config.efRuntime;
|
|
120
90
|
this.hybridPolicy = config.hybridPolicy;
|
|
121
91
|
this.batchSize = config.batchSize;
|
|
122
|
-
this.normalizeDistance = config.normalizeDistance ?? false;
|
|
123
92
|
this.searchWindowSize = config.searchWindowSize;
|
|
124
93
|
this.useSearchHistory = config.useSearchHistory;
|
|
125
94
|
this.searchBufferCapacity = config.searchBufferCapacity;
|
|
95
|
+
this.sortBy(this.scoreAlias);
|
|
126
96
|
}
|
|
127
97
|
/**
|
|
128
98
|
* Build the Redis KNN query string
|
|
@@ -169,6 +139,7 @@ export class VectorQuery {
|
|
|
169
139
|
buildParams() {
|
|
170
140
|
const vectorBuffer = encodeVectorBuffer(this.vector, this.datatype);
|
|
171
141
|
const params = {
|
|
142
|
+
...super.buildParams(),
|
|
172
143
|
vector: vectorBuffer,
|
|
173
144
|
};
|
|
174
145
|
// Add HNSW parameters if provided
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vector.js","sourceRoot":"","sources":["../../../src/query/search/vector.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Redis Client Type Definitions
|
|
3
3
|
*
|
|
4
4
|
* The bare `RedisClientType` / `RedisClusterType` aliases re-exported from
|
|
5
|
-
* the `redis` package default their `RESP` generic to `
|
|
5
|
+
* the `redis` package default their `RESP` generic to `3`. When consumers
|
|
6
6
|
* call `createClient(...)` without an explicit annotation, TypeScript
|
|
7
7
|
* infers `RESP` as the full `RespVersions` union (`2 | 3`), making the
|
|
8
8
|
* inferred client unassignable to APIs typed against the bare alias.
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Redis Client Type Definitions
|
|
3
3
|
*
|
|
4
4
|
* The bare `RedisClientType` / `RedisClusterType` aliases re-exported from
|
|
5
|
-
* the `redis` package default their `RESP` generic to `
|
|
5
|
+
* the `redis` package default their `RESP` generic to `3`. When consumers
|
|
6
6
|
* call `createClient(...)` without an explicit annotation, TypeScript
|
|
7
7
|
* infers `RESP` as the full `RespVersions` union (`2 | 3`), making the
|
|
8
8
|
* inferred client unassignable to APIs typed against the bare alias.
|
package/dist/schema/schema.d.ts
CHANGED
|
@@ -37,8 +37,8 @@ export declare class IndexInfo {
|
|
|
37
37
|
* Zod schema for IndexSchema validation.
|
|
38
38
|
*/
|
|
39
39
|
export declare const IndexSchemaOptionsSchema: z.ZodObject<{
|
|
40
|
-
index: z.
|
|
41
|
-
fields: z.ZodOptional<z.ZodRecord<z.ZodString, z.
|
|
40
|
+
index: z.ZodInstanceOf<IndexInfo>;
|
|
41
|
+
fields: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodInstanceOf<BaseField>>>;
|
|
42
42
|
version: z.ZodOptional<z.ZodLiteral<"0.1.0">>;
|
|
43
43
|
}, z.core.$strip>;
|
|
44
44
|
/**
|
|
@@ -2,7 +2,6 @@ import type { RedisClientType, RedisClusterType } from 'redis';
|
|
|
2
2
|
import type { IndexSchema } from '../schema/schema.js';
|
|
3
3
|
/**
|
|
4
4
|
* Redis client type (standalone or cluster) used internally by storage.
|
|
5
|
-
* Matches the RESP=2 reply shapes this library is implemented against.
|
|
6
5
|
*/
|
|
7
6
|
export type RedisClient = RedisClientType | RedisClusterType;
|
|
8
7
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-storage.d.ts","sourceRoot":"","sources":["../../src/storage/base-storage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,OAAO,CAAC;AAC/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAOvD
|
|
1
|
+
{"version":3,"file":"base-storage.d.ts","sourceRoot":"","sources":["../../src/storage/base-storage.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-storage.js","sourceRoot":"","sources":["../../src/storage/base-storage.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"base-storage.js","sourceRoot":"","sources":["../../src/storage/base-storage.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAO5D;;;GAGG;AACH,MAAM,UAAU,YAAY;IACxB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IAC1E,MAAM,UAAU,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IACxF,OAAO,SAAS,GAAG,UAAU,CAAC;AAClC,CAAC;AAuCD;;;;GAIG;AACH,MAAM,OAAgB,WAAW;IACV,MAAM,CAAc;IACpB,gBAAgB,GAAW,GAAG,CAAC;IAElD,YAAY,MAAmB;QAC3B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;IAED;;;OAGG;IACO,SAAS,CAAC,EAAU,EAAE,MAAyB,EAAE,YAAoB;QAC3E,0CAA0C;QAC1C,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QAE7D,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,OAAO,EAAE,CAAC;QACd,CAAC;QAED,mDAAmD;QACnD,MAAM,gBAAgB,GAAG,YAAY;YACjC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,GAAG,YAAY,IAAI,CAAC,EAAE,EAAE,CAAC;YACxD,CAAC,CAAC,SAAS,CAAC;QAEhB,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACpB,OAAO,EAAE,CAAC;QACd,CAAC;QAED,OAAO,GAAG,gBAAgB,GAAG,YAAY,GAAG,EAAE,EAAE,CAAC;IACrD,CAAC;IAED;;;;OAIG;IACO,oBAAoB,CAC1B,GAA4B,EAC5B,OAA2B,EAC3B,MAAyB,EACzB,YAAoB;QAEpB,IAAI,QAAgB,CAAC;QAErB,IAAI,OAAO,EAAE,CAAC;YACV,IAAI,CAAC,CAAC,OAAO,IAAI,GAAG,CAAC,EAAE,CAAC;gBACpB,MAAM,IAAI,qBAAqB,CAAC,cAAc,OAAO,yBAAyB,CAAC,CAAC;YACpF,CAAC;YACD,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;QACpC,CAAC;aAAM,CAAC;YACJ,QAAQ,GAAG,YAAY,EAAE,CAAC;QAC9B,CAAC;QAED,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;IAC1D,CAAC;IAED;;OAEG;IACO,KAAK,CAAC,UAAU,CACtB,GAA4B,EAC5B,YAAiF;QAEjF,OAAO,YAAY,CAAC,CAAC,CAAC,MAAM,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IACxD,CAAC;IAED;;;OAGG;IACO,QAAQ,CAAC,GAA4B;QAC3C,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACtC,OAAO,GAAG,CAAC;QACf,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAEjD,4DAA4D;QAC5D,KAAK,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YACnD,0CAA0C;YAC1C,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAY,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;YAElE,IAAI,KAAK,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACjD,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;YAChD,CAAC;QACL,CAAC;QAED,OAAO,GAAG,CAAC;IACf,CAAC;IAED;;;OAGG;IACK,aAAa,CAAC,KAAgB,EAAE,SAAiB,EAAE,KAAc;QACrE,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC;QAE7B,QAAQ,SAAS,EAAE,CAAC;YAChB,KAAK,SAAS,CAAC,OAAO;gBAClB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;oBAC5B,MAAM,IAAI,qBAAqB,CAC3B,UAAU,SAAS,gCAAgC,OAAO,KAAK,EAAE,CACpE,CAAC;gBACN,CAAC;gBACD,MAAM;YAEV,KAAK,SAAS,CAAC,MAAM;gBACjB,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;gBAClD,MAAM;YAEV,KAAK,SAAS,CAAC,IAAI,CAAC;YACpB,KAAK,SAAS,CAAC,GAAG;gBACd,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;oBAC5B,MAAM,IAAI,qBAAqB,CAC3B,UAAU,SAAS,+BAA+B,OAAO,KAAK,EAAE,CACnE,CAAC;gBACN,CAAC;gBACD,MAAM;YAEV,KAAK,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;gBACjB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;oBAC5B,MAAM,IAAI,qBAAqB,CAC3B,UAAU,SAAS,gEAAgE,OAAO,KAAK,EAAE,CACpG,CAAC;gBACN,CAAC;gBAED,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAEtC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACrB,MAAM,IAAI,qBAAqB,CAC3B,UAAU,SAAS,wDAAwD,KAAK,GAAG,CACtF,CAAC;gBACN,CAAC;gBAED,MAAM,SAAS,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC9C,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;gBAE7C,IAAI,KAAK,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACtC,MAAM,IAAI,qBAAqB,CAC3B,UAAU,SAAS,4FAA4F,KAAK,GAAG,CAC1H,CAAC;gBACN,CAAC;gBAED,IAAI,SAAS,GAAG,CAAC,GAAG,IAAI,SAAS,GAAG,GAAG,EAAE,CAAC;oBACtC,MAAM,IAAI,qBAAqB,CAC3B,UAAU,SAAS,kDAAkD,SAAS,EAAE,CACnF,CAAC;gBACN,CAAC;gBAED,IAAI,QAAQ,GAAG,CAAC,EAAE,IAAI,QAAQ,GAAG,EAAE,EAAE,CAAC;oBAClC,MAAM,IAAI,qBAAqB,CAC3B,UAAU,SAAS,+CAA+C,QAAQ,EAAE,CAC/E,CAAC;gBACN,CAAC;gBACD,MAAM;YACV,CAAC;QACL,CAAC;IACL,CAAC;IAED;;;OAGG;IACK,mBAAmB,CAAC,KAAgB,EAAE,SAAiB,EAAE,KAAc;QAC3E,uCAAuC;QACvC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACnD,MAAM,IAAI,qBAAqB,CAC3B,UAAU,SAAS,iDAAiD,OAAO,KAAK,IAAI;gBAChF,wDAAwD,CAC/D,CAAC;QACN,CAAC;QAED,uCAAuC;QACvC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAqD,CAAC;QAC1E,MAAM,YAAY,GAAG,KAAK,EAAE,IAAI,IAAI,KAAK,EAAE,GAAG,CAAC;QAE/C,IAAI,YAAY,EAAE,CAAC;YACf,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;gBACnC,CAAC,CAAC,KAAK,CAAC,MAAM;gBACd,CAAC,CAAC,KAAK,CAAC,UAAU,GAAG,uBAAuB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAEjE,IAAI,UAAU,KAAK,YAAY,EAAE,CAAC;gBAC9B,MAAM,IAAI,qBAAqB,CAC3B,iBAAiB,SAAS,8BAA8B;oBACpD,YAAY,YAAY,uBAAuB,UAAU,GAAG,CACnE,CAAC;YACN,CAAC;QACL,CAAC;QAED,sCAAsC;QACtC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACpC,IAAI,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC;oBAC/B,MAAM,IAAI,qBAAqB,CAC3B,iBAAiB,SAAS,yCAAyC,CAAC,KAAK,OAAO,KAAK,CAAC,CAAC,CAAC,EAAE,CAC7F,CAAC;gBACN,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;IAED;;;;;;;;;;;OAWG;IACO,KAAK,CAAC,8BAA8B,CAC1C,IAA+B,EAC/B,OAAqB;QAErB,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,cAAc,GAAG,KAAK,EAAE,GAAG,OAAO,CAAC;QACtE,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;QACxC,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC;QAEpD,MAAM,YAAY,GAAyD,EAAE,CAAC;QAE9E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACnC,IAAI,CAAC;gBACD,eAAe;gBACf,MAAM,GAAG,GAAG,IAAI;oBACZ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;oBACT,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;gBAExE,aAAa;gBACb,IAAI,YAAY,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;gBAE9D,sBAAsB;gBACtB,IAAI,cAAc,EAAE,CAAC;oBACjB,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;gBAC/C,CAAC;gBAED,YAAY,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,YAAY,EAAE,CAAC,CAAC;YAClD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,IAAI,KAAK,YAAY,qBAAqB,EAAE,CAAC;oBACzC,gDAAgD;oBAChD,MAAM,IAAI,qBAAqB,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;gBACtD,CAAC;gBACD,MAAM,IAAI,qBAAqB,CAC3B,sCAAsC,CAAC,KAAK,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACvG,CAAC;YACN,CAAC;QACL,CAAC;QAED,OAAO,YAAY,CAAC;IACxB,CAAC;CAmBJ"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "redis-vl",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.2",
|
|
4
4
|
"description": "The AI-native Redis TypeScript/Node.js client for vector operations",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -64,9 +64,9 @@
|
|
|
64
64
|
"node": ">=22.0.0"
|
|
65
65
|
},
|
|
66
66
|
"dependencies": {
|
|
67
|
-
"js-yaml": "^
|
|
68
|
-
"redis": "^
|
|
69
|
-
"zod": "^4.
|
|
67
|
+
"js-yaml": "^5.5.0",
|
|
68
|
+
"redis": "^6.3.0",
|
|
69
|
+
"zod": "^4.6.7"
|
|
70
70
|
},
|
|
71
71
|
"peerDependencies": {
|
|
72
72
|
"@huggingface/transformers": "^3.0.0"
|
|
@@ -79,19 +79,19 @@
|
|
|
79
79
|
"devDependencies": {
|
|
80
80
|
"@huggingface/transformers": "^3.2.1",
|
|
81
81
|
"@types/js-yaml": "^4.0.9",
|
|
82
|
-
"@types/node": "^
|
|
83
|
-
"@typescript-eslint/eslint-plugin": "^8.
|
|
84
|
-
"@typescript-eslint/parser": "^8.
|
|
85
|
-
"@vitest/coverage-v8": "^
|
|
86
|
-
"eslint": "^9.39.
|
|
82
|
+
"@types/node": "^26.6.5",
|
|
83
|
+
"@typescript-eslint/eslint-plugin": "^8.72.0",
|
|
84
|
+
"@typescript-eslint/parser": "^8.72.0",
|
|
85
|
+
"@vitest/coverage-v8": "^5.0.5",
|
|
86
|
+
"eslint": "^9.39.5",
|
|
87
87
|
"eslint-config-prettier": "^10.1.8",
|
|
88
88
|
"husky": "^9.1.7",
|
|
89
89
|
"lint-staged": "^16.2.7",
|
|
90
|
-
"prettier": "^3.
|
|
91
|
-
"testcontainers": "^
|
|
92
|
-
"tsx": "^4.
|
|
90
|
+
"prettier": "^3.9.10",
|
|
91
|
+
"testcontainers": "^12.2.1",
|
|
92
|
+
"tsx": "^4.23.15",
|
|
93
93
|
"typescript": "^5.9.3",
|
|
94
|
-
"vitest": "^
|
|
94
|
+
"vitest": "^5.0.5"
|
|
95
95
|
},
|
|
96
96
|
"lint-staged": {
|
|
97
97
|
"*.{ts,tsx}": [
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"aggregation.d.ts","sourceRoot":"","sources":["../../src/query/aggregation.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"aggregation.js","sourceRoot":"","sources":["../../src/query/aggregation.ts"],"names":[],"mappings":"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"}
|
package/dist/query/base.d.ts
DELETED
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @module Query
|
|
3
|
-
* Query builders for Redis search operations.
|
|
4
|
-
*/
|
|
5
|
-
import type { FilterExpression } from './filter.js';
|
|
6
|
-
/**
|
|
7
|
-
* A filter clause supplied to a query — either a pre-built {@link FilterExpression}
|
|
8
|
-
* or a raw Redis Search filter string (e.g. `'@category:{electronics}'`).
|
|
9
|
-
*/
|
|
10
|
-
export type FilterInput = string | FilterExpression;
|
|
11
|
-
/**
|
|
12
|
-
* Render a {@link FilterInput} to its Redis Search string form, treating
|
|
13
|
-
* `undefined` and the wildcard expression as "no filter" (`*`).
|
|
14
|
-
*/
|
|
15
|
-
export declare function renderFilter(filter: FilterInput | undefined): string;
|
|
16
|
-
/**
|
|
17
|
-
* Base interface for all query types
|
|
18
|
-
*/
|
|
19
|
-
export interface BaseQuery {
|
|
20
|
-
/** Fields to return in results */
|
|
21
|
-
returnFields?: string[];
|
|
22
|
-
/** Number of results to return */
|
|
23
|
-
limit?: number;
|
|
24
|
-
/** Offset for pagination */
|
|
25
|
-
offset?: number;
|
|
26
|
-
/** When true, ask Redis to return only document ids/counts (FT.SEARCH NOCONTENT). */
|
|
27
|
-
noContent?: boolean;
|
|
28
|
-
/** Optional RediSearch scorer to apply when ranking text results. */
|
|
29
|
-
textScorer?: string;
|
|
30
|
-
/** Build the Redis query string */
|
|
31
|
-
buildQuery(): string;
|
|
32
|
-
/** Build the query parameters for Redis */
|
|
33
|
-
buildParams(): Record<string, unknown>;
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* Search result document with optional score
|
|
37
|
-
*/
|
|
38
|
-
export interface SearchDocument<T = Record<string, unknown>> {
|
|
39
|
-
/** Document fields */
|
|
40
|
-
value: T;
|
|
41
|
-
/** Relevance score (for vector search) */
|
|
42
|
-
score?: number;
|
|
43
|
-
/** Document ID */
|
|
44
|
-
id: string;
|
|
45
|
-
}
|
|
46
|
-
/**
|
|
47
|
-
* Search result structure
|
|
48
|
-
*/
|
|
49
|
-
export interface SearchResult<T = Record<string, unknown>> {
|
|
50
|
-
/** Total number of results */
|
|
51
|
-
total: number;
|
|
52
|
-
/** Retrieved documents */
|
|
53
|
-
documents: SearchDocument<T>[];
|
|
54
|
-
}
|
|
55
|
-
/**
|
|
56
|
-
* Result returned by {@link SearchIndex.hybridSearch}. Adds the FT.HYBRID
|
|
57
|
-
* specific fields (`executionTime`, `warnings`) on top of the standard
|
|
58
|
-
* {@link SearchResult} shape.
|
|
59
|
-
*/
|
|
60
|
-
export interface HybridSearchResult<T = Record<string, unknown>> extends SearchResult<T> {
|
|
61
|
-
/** Server-reported query execution time in milliseconds. */
|
|
62
|
-
executionTime?: number;
|
|
63
|
-
/** Warnings emitted by the server (e.g. truncated KNN, missing scorer). */
|
|
64
|
-
warnings?: string[];
|
|
65
|
-
}
|
|
66
|
-
/**
|
|
67
|
-
* Options for query execution
|
|
68
|
-
*/
|
|
69
|
-
export interface QueryOptions {
|
|
70
|
-
/** Redis DIALECT version (default: 2 for KNN) */
|
|
71
|
-
dialect?: number;
|
|
72
|
-
/** Sort by field */
|
|
73
|
-
sortBy?: string;
|
|
74
|
-
/** Sort order */
|
|
75
|
-
sortOrder?: 'ASC' | 'DESC';
|
|
76
|
-
}
|
|
77
|
-
//# sourceMappingURL=base.d.ts.map
|
package/dist/query/base.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/query/base.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEpD;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,gBAAgB,CAAC;AAEpD;;;GAGG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,WAAW,GAAG,SAAS,GAAG,MAAM,CAGpE;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACtB,kCAAkC;IAClC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IAExB,kCAAkC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,4BAA4B;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,qFAAqF;IACrF,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,qEAAqE;IACrE,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,mCAAmC;IACnC,UAAU,IAAI,MAAM,CAAC;IAErB,2CAA2C;IAC3C,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC1C;AAED;;GAEG;AACH,MAAM,WAAW,cAAc,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACvD,sBAAsB;IACtB,KAAK,EAAE,CAAC,CAAC;IAET,0CAA0C;IAC1C,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,kBAAkB;IAClB,EAAE,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,YAAY,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACrD,8BAA8B;IAC9B,KAAK,EAAE,MAAM,CAAC;IAEd,0BAA0B;IAC1B,SAAS,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;CAClC;AAED;;;;GAIG;AACH,MAAM,WAAW,kBAAkB,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAE,SAAQ,YAAY,CAAC,CAAC,CAAC;IACpF,4DAA4D;IAC5D,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IACzB,iDAAiD;IACjD,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,oBAAoB;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,iBAAiB;IACjB,SAAS,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;CAC9B"}
|