@redis/search 5.9.0 → 5.11.0
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 +18 -0
- package/dist/lib/commands/AGGREGATE.d.ts +2 -1
- package/dist/lib/commands/AGGREGATE.d.ts.map +1 -1
- package/dist/lib/commands/AGGREGATE.js +2 -1
- package/dist/lib/commands/AGGREGATE.js.map +1 -1
- package/dist/lib/commands/CREATE.d.ts +25 -3
- package/dist/lib/commands/CREATE.d.ts.map +1 -1
- package/dist/lib/commands/CREATE.js +115 -108
- package/dist/lib/commands/CREATE.js.map +1 -1
- package/dist/lib/commands/HYBRID.d.ts +183 -0
- package/dist/lib/commands/HYBRID.d.ts.map +1 -0
- package/dist/lib/commands/HYBRID.js +273 -0
- package/dist/lib/commands/HYBRID.js.map +1 -0
- package/dist/lib/commands/index.d.ts +20 -0
- package/dist/lib/commands/index.d.ts.map +1 -1
- package/dist/lib/commands/index.js +3 -0
- package/dist/lib/commands/index.js.map +1 -1
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -32,6 +32,24 @@ await client.ft.create('idx:animals', {
|
|
|
32
32
|
|
|
33
33
|
See the [`FT.CREATE` documentation](https://redis.io/commands/ft.create/#description) for information about the different field types and additional options.
|
|
34
34
|
|
|
35
|
+
#### Indexing a Field Multiple Times
|
|
36
|
+
|
|
37
|
+
You can index the same field multiple times with different types or aliases by using an array:
|
|
38
|
+
|
|
39
|
+
```javascript
|
|
40
|
+
await client.ft.create('idx:products', {
|
|
41
|
+
sku: [
|
|
42
|
+
{ type: SCHEMA_FIELD_TYPE.TEXT, AS: 'sku_text' },
|
|
43
|
+
{ type: SCHEMA_FIELD_TYPE.TAG, AS: 'sku_tag', SORTABLE: true }
|
|
44
|
+
]
|
|
45
|
+
}, {
|
|
46
|
+
ON: 'HASH',
|
|
47
|
+
PREFIX: 'product:'
|
|
48
|
+
});
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
This allows querying the same field using different search strategies.
|
|
52
|
+
|
|
35
53
|
#### Querying the Index
|
|
36
54
|
|
|
37
55
|
Once we've created an index, and added some data to Redis hashes whose keys begin with the prefix `noderedis:animals`, we can start writing some search queries. RediSearch supports a rich query syntax for full-text search, faceted search, aggregation and more. Check out the [`FT.SEARCH` documentation](https://redis.io/commands/ft.search) and the [query syntax reference](https://redis.io/docs/interact/search-and-query/query) for more information.
|
|
@@ -62,7 +62,7 @@ interface FirstValueReducer extends GroupByReducerWithProperty<FT_AGGREGATE_GROU
|
|
|
62
62
|
interface RandomSampleReducer extends GroupByReducerWithProperty<FT_AGGREGATE_GROUP_BY_REDUCERS['RANDOM_SAMPLE']> {
|
|
63
63
|
sampleSize: number;
|
|
64
64
|
}
|
|
65
|
-
type GroupByReducers = CountReducer | CountDistinctReducer | CountDistinctishReducer | SumReducer | MinReducer | MaxReducer | AvgReducer | StdDevReducer | QuantileReducer | ToListReducer | FirstValueReducer | RandomSampleReducer;
|
|
65
|
+
export type GroupByReducers = CountReducer | CountDistinctReducer | CountDistinctishReducer | SumReducer | MinReducer | MaxReducer | AvgReducer | StdDevReducer | QuantileReducer | ToListReducer | FirstValueReducer | RandomSampleReducer;
|
|
66
66
|
interface GroupByStep extends AggregateStep<FT_AGGREGATE_STEPS['GROUPBY']> {
|
|
67
67
|
properties?: RediSearchProperty | Array<RediSearchProperty>;
|
|
68
68
|
REDUCE: GroupByReducers | Array<GroupByReducers>;
|
|
@@ -127,4 +127,5 @@ declare const _default: {
|
|
|
127
127
|
};
|
|
128
128
|
export default _default;
|
|
129
129
|
export declare function parseAggregateOptions(parser: CommandParser, options?: FtAggregateOptions): void;
|
|
130
|
+
export declare function parseGroupByReducer(parser: CommandParser, reducer: GroupByReducers): void;
|
|
130
131
|
//# sourceMappingURL=AGGREGATE.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AGGREGATE.d.ts","sourceRoot":"","sources":["../../../lib/commands/AGGREGATE.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AACrE,OAAO,EAAE,UAAU,EAAE,eAAe,EAAW,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AACrK,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAuB,MAAM,UAAU,CAAC;AAI/D,KAAK,SAAS,GAAG,kBAAkB,GAAG;IACpC,UAAU,EAAE,kBAAkB,CAAC;IAC/B,EAAE,CAAC,EAAE,aAAa,CAAC;CACpB,CAAA;AAED,eAAO,MAAM,kBAAkB;;;;;;CAMrB,CAAC;AAEX,KAAK,kBAAkB,GAAG,OAAO,kBAAkB,CAAC;AAEpD,MAAM,MAAM,eAAe,GAAG,kBAAkB,CAAC,MAAM,kBAAkB,CAAC,CAAC;AAE3E,UAAU,aAAa,CAAC,CAAC,SAAS,eAAe;IAC/C,IAAI,EAAE,CAAC,CAAC;CACT;AAED,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;CAajC,CAAC;AAEX,KAAK,8BAA8B,GAAG,OAAO,8BAA8B,CAAC;AAE5E,MAAM,MAAM,yBAAyB,GAAG,8BAA8B,CAAC,MAAM,8BAA8B,CAAC,CAAC;AAE7G,UAAU,cAAc,CAAC,CAAC,SAAS,yBAAyB;IAC1D,IAAI,EAAE,CAAC,CAAC;IACR,EAAE,CAAC,EAAE,aAAa,CAAC;CACpB;AAED,UAAU,0BAA0B,CAAC,CAAC,SAAS,yBAAyB,CAAE,SAAQ,cAAc,CAAC,CAAC,CAAC;IACjG,QAAQ,EAAE,kBAAkB,CAAC;CAC9B;AAED,KAAK,YAAY,GAAG,cAAc,CAAC,8BAA8B,CAAC,OAAO,CAAC,CAAC,CAAC;AAE5E,KAAK,oBAAoB,GAAG,0BAA0B,CAAC,8BAA8B,CAAC,gBAAgB,CAAC,CAAC,CAAC;AAEzG,KAAK,uBAAuB,GAAG,0BAA0B,CAAC,8BAA8B,CAAC,mBAAmB,CAAC,CAAC,CAAC;AAE/G,KAAK,UAAU,GAAG,0BAA0B,CAAC,8BAA8B,CAAC,KAAK,CAAC,CAAC,CAAC;AAEpF,KAAK,UAAU,GAAG,0BAA0B,CAAC,8BAA8B,CAAC,KAAK,CAAC,CAAC,CAAC;AAEpF,KAAK,UAAU,GAAG,0BAA0B,CAAC,8BAA8B,CAAC,KAAK,CAAC,CAAC,CAAC;AAEpF,KAAK,UAAU,GAAG,0BAA0B,CAAC,8BAA8B,CAAC,KAAK,CAAC,CAAC,CAAC;AAEpF,KAAK,aAAa,GAAG,0BAA0B,CAAC,8BAA8B,CAAC,QAAQ,CAAC,CAAC,CAAC;AAE1F,UAAU,eAAgB,SAAQ,0BAA0B,CAAC,8BAA8B,CAAC,UAAU,CAAC,CAAC;IACtG,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,KAAK,aAAa,GAAG,0BAA0B,CAAC,8BAA8B,CAAC,QAAQ,CAAC,CAAC,CAAC;AAE1F,UAAU,iBAAkB,SAAQ,0BAA0B,CAAC,8BAA8B,CAAC,aAAa,CAAC,CAAC;IAC3G,EAAE,CAAC,EAAE,kBAAkB,GAAG;QACxB,QAAQ,EAAE,kBAAkB,CAAC;QAC7B,SAAS,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;KAC5B,CAAC;CACH;AAED,UAAU,mBAAoB,SAAQ,0BAA0B,CAAC,8BAA8B,CAAC,eAAe,CAAC,CAAC;IAC/G,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,
|
|
1
|
+
{"version":3,"file":"AGGREGATE.d.ts","sourceRoot":"","sources":["../../../lib/commands/AGGREGATE.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.parseAggregateOptions = exports.FT_AGGREGATE_GROUP_BY_REDUCERS = exports.FT_AGGREGATE_STEPS = void 0;
|
|
3
|
+
exports.parseGroupByReducer = exports.parseAggregateOptions = exports.FT_AGGREGATE_GROUP_BY_REDUCERS = exports.FT_AGGREGATE_STEPS = void 0;
|
|
4
4
|
const SEARCH_1 = require("./SEARCH");
|
|
5
5
|
const generic_transformers_1 = require("@redis/client/dist/lib/commands/generic-transformers");
|
|
6
6
|
const default_1 = require("../dialect/default");
|
|
@@ -197,6 +197,7 @@ function parseGroupByReducer(parser, reducer) {
|
|
|
197
197
|
parser.push('AS', reducer.AS);
|
|
198
198
|
}
|
|
199
199
|
}
|
|
200
|
+
exports.parseGroupByReducer = parseGroupByReducer;
|
|
200
201
|
function pushSortByProperty(args, sortBy) {
|
|
201
202
|
if (typeof sortBy === 'string' || sortBy instanceof Buffer) {
|
|
202
203
|
args.push(sortBy);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AGGREGATE.js","sourceRoot":"","sources":["../../../lib/commands/AGGREGATE.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"AGGREGATE.js","sourceRoot":"","sources":["../../../lib/commands/AGGREGATE.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,7 +22,7 @@ interface SchemaCommonField<T extends SchemaFieldType = SchemaFieldType> extends
|
|
|
22
22
|
export declare const SCHEMA_TEXT_FIELD_PHONETIC: {
|
|
23
23
|
readonly DM_EN: "dm:en";
|
|
24
24
|
readonly DM_FR: "dm:fr";
|
|
25
|
-
readonly
|
|
25
|
+
readonly DM_PT: "dm:pt";
|
|
26
26
|
readonly DM_ES: "dm:es";
|
|
27
27
|
};
|
|
28
28
|
export type SchemaTextFieldPhonetic = typeof SCHEMA_TEXT_FIELD_PHONETIC[keyof typeof SCHEMA_TEXT_FIELD_PHONETIC];
|
|
@@ -103,8 +103,29 @@ export type SchemaGeoShapeFieldCoordSystem = typeof SCHEMA_GEO_SHAPE_COORD_SYSTE
|
|
|
103
103
|
interface SchemaGeoShapeField extends SchemaField<typeof SCHEMA_FIELD_TYPE['GEOSHAPE']> {
|
|
104
104
|
COORD_SYSTEM?: SchemaGeoShapeFieldCoordSystem;
|
|
105
105
|
}
|
|
106
|
+
/**
|
|
107
|
+
* Union type representing all possible field definition types for a RediSearch schema.
|
|
108
|
+
*/
|
|
109
|
+
export type SchemaFieldDefinition = SchemaTextField | SchemaNumericField | SchemaGeoField | SchemaTagField | SchemaFlatVectorField | SchemaHNSWVectorField | SchemaVAMANAVectorField | SchemaGeoShapeField | SchemaFieldType;
|
|
110
|
+
/**
|
|
111
|
+
* Schema definition for a RediSearch index.
|
|
112
|
+
*
|
|
113
|
+
* Each field can be either a single field definition or an array of definitions.
|
|
114
|
+
* Use an array to index the same field multiple times with different types or aliases.
|
|
115
|
+
*
|
|
116
|
+
* @example
|
|
117
|
+
* // Single field definitions
|
|
118
|
+
* { name: SCHEMA_FIELD_TYPE.TEXT, age: SCHEMA_FIELD_TYPE.NUMERIC }
|
|
119
|
+
*
|
|
120
|
+
* @example
|
|
121
|
+
* // Same field indexed as both TEXT and TAG with different aliases
|
|
122
|
+
* { sku: [
|
|
123
|
+
* { type: SCHEMA_FIELD_TYPE.TEXT, AS: 'sku_text' },
|
|
124
|
+
* { type: SCHEMA_FIELD_TYPE.TAG, AS: 'sku_tag', SORTABLE: true }
|
|
125
|
+
* ]}
|
|
126
|
+
*/
|
|
106
127
|
export interface RediSearchSchema {
|
|
107
|
-
[field: string]:
|
|
128
|
+
[field: string]: SchemaFieldDefinition | SchemaFieldDefinition[];
|
|
108
129
|
}
|
|
109
130
|
export declare function parseSchema(parser: CommandParser, schema: RediSearchSchema): void;
|
|
110
131
|
export declare const REDISEARCH_LANGUAGE: {
|
|
@@ -160,7 +181,8 @@ declare const _default: {
|
|
|
160
181
|
* Creates a new search index with the given schema and options.
|
|
161
182
|
* @param parser - The command parser
|
|
162
183
|
* @param index - Name of the index to create
|
|
163
|
-
* @param schema - Index schema defining field names and types (TEXT, NUMERIC, GEO, TAG, VECTOR, GEOSHAPE)
|
|
184
|
+
* @param schema - Index schema defining field names and types (TEXT, NUMERIC, GEO, TAG, VECTOR, GEOSHAPE).
|
|
185
|
+
* Each field can be a single definition or an array to index the same field multiple times with different configurations.
|
|
164
186
|
* @param options - Optional parameters:
|
|
165
187
|
* - ON: Type of container to index (HASH or JSON)
|
|
166
188
|
* - PREFIX: Prefixes for document keys to index
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CREATE.d.ts","sourceRoot":"","sources":["../../../lib/commands/CREATE.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAW,MAAM,mCAAmC,CAAC;AAC9F,OAAO,EAAE,qBAAqB,EAAiC,MAAM,sDAAsD,CAAC;AAE5H,eAAO,MAAM,iBAAiB;;;;;;;CAOpB,CAAC;AAEX,MAAM,MAAM,eAAe,GAAG,OAAO,iBAAiB,CAAC,MAAM,OAAO,iBAAiB,CAAC,CAAC;AAEvF,UAAU,WAAW,CAAC,CAAC,SAAS,eAAe,GAAG,eAAe;IAC/D,IAAI,EAAE,CAAC,CAAC;IACR,EAAE,CAAC,EAAE,aAAa,CAAC;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,UAAU,iBAAiB,CAAC,CAAC,SAAS,eAAe,GAAG,eAAe,CAAE,SAAQ,WAAW,CAAC,CAAC,CAAC;IAC7F,QAAQ,CAAC,EAAE,OAAO,GAAG,KAAK,CAAA;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,eAAO,MAAM,0BAA0B;;;;;CAK7B,CAAC;AAEX,MAAM,MAAM,uBAAuB,GAAG,OAAO,0BAA0B,CAAC,MAAM,OAAO,0BAA0B,CAAC,CAAC;AAEjH,UAAU,eAAgB,SAAQ,iBAAiB,CAAC,OAAO,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACnF,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,uBAAuB,CAAC;IACnC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,UAAU,kBAAmB,SAAQ,iBAAiB,CAAC,OAAO,iBAAiB,CAAC,SAAS,CAAC,CAAC;CAAG;AAE9F,UAAU,cAAe,SAAQ,iBAAiB,CAAC,OAAO,iBAAiB,CAAC,KAAK,CAAC,CAAC;CAAG;AAEtF,UAAU,cAAe,SAAQ,iBAAiB,CAAC,OAAO,iBAAiB,CAAC,KAAK,CAAC,CAAC;IACjF,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,eAAO,MAAM,6BAA6B;;;IAGxC;;MAEE;;CAEM,CAAC;AAEX,MAAM,MAAM,0BAA0B,GAAG,OAAO,6BAA6B,CAAC,MAAM,OAAO,6BAA6B,CAAC,CAAC;AAE1H,UAAU,iBAAkB,SAAQ,WAAW,CAAC,OAAO,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IACjF,SAAS,EAAE,0BAA0B,CAAC;IACtC,IAAI,EAAE,SAAS,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,CAAC;IACxE,GAAG,EAAE,MAAM,CAAC;IACZ,eAAe,EAAE,IAAI,GAAG,IAAI,GAAG,QAAQ,CAAC;IACxC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,UAAU,qBAAsB,SAAQ,iBAAiB;IACvD,SAAS,EAAE,OAAO,6BAA6B,CAAC,MAAM,CAAC,CAAC;IACxD,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,UAAU,qBAAsB,SAAQ,iBAAiB;IACvD,SAAS,EAAE,OAAO,6BAA6B,CAAC,MAAM,CAAC,CAAC;IACxD,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,4BAA4B;;;;;;;CAO/B,CAAC;AAEX,MAAM,MAAM,0BAA0B,GACpC,OAAO,4BAA4B,CAAC,MAAM,OAAO,4BAA4B,CAAC,CAAC;AAEjF,UAAU,uBAAwB,SAAQ,iBAAiB;IACzD,SAAS,EAAE,OAAO,6BAA6B,CAAC,QAAQ,CAAC,CAAC;IAC1D,IAAI,EAAE,SAAS,GAAG,SAAS,CAAC;IAE5B,WAAW,CAAC,EAAE,0BAA0B,CAAC;IACzC,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,eAAO,MAAM,6BAA6B;;;CAGhC,CAAC;AAEX,MAAM,MAAM,8BAA8B,GAAG,OAAO,6BAA6B,CAAC,MAAM,OAAO,6BAA6B,CAAC,CAAC;AAE9H,UAAU,mBAAoB,SAAQ,WAAW,CAAC,OAAO,iBAAiB,CAAC,UAAU,CAAC,CAAC;IACrF,YAAY,CAAC,EAAE,8BAA8B,CAAC;CAC/C;AAED,MAAM,
|
|
1
|
+
{"version":3,"file":"CREATE.d.ts","sourceRoot":"","sources":["../../../lib/commands/CREATE.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,7 +13,7 @@ exports.SCHEMA_FIELD_TYPE = {
|
|
|
13
13
|
exports.SCHEMA_TEXT_FIELD_PHONETIC = {
|
|
14
14
|
DM_EN: 'dm:en',
|
|
15
15
|
DM_FR: 'dm:fr',
|
|
16
|
-
|
|
16
|
+
DM_PT: 'dm:pt',
|
|
17
17
|
DM_ES: 'dm:es'
|
|
18
18
|
};
|
|
19
19
|
exports.SCHEMA_VECTOR_FIELD_ALGORITHM = {
|
|
@@ -48,112 +48,118 @@ function parseCommonSchemaFieldOptions(parser, fieldOptions) {
|
|
|
48
48
|
}
|
|
49
49
|
}
|
|
50
50
|
function parseSchema(parser, schema) {
|
|
51
|
-
for (const [field,
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
51
|
+
for (const [field, fieldOptionsOrArray] of Object.entries(schema)) {
|
|
52
|
+
// Normalize to array for uniform processing
|
|
53
|
+
const fieldOptionsList = Array.isArray(fieldOptionsOrArray)
|
|
54
|
+
? fieldOptionsOrArray
|
|
55
|
+
: [fieldOptionsOrArray];
|
|
56
|
+
for (const fieldOptions of fieldOptionsList) {
|
|
57
|
+
parser.push(field);
|
|
58
|
+
if (typeof fieldOptions === 'string') {
|
|
59
|
+
parser.push(fieldOptions);
|
|
60
|
+
continue;
|
|
61
|
+
}
|
|
62
|
+
if (fieldOptions.AS) {
|
|
63
|
+
parser.push('AS', fieldOptions.AS);
|
|
64
|
+
}
|
|
65
|
+
parser.push(fieldOptions.type);
|
|
66
|
+
if (fieldOptions.INDEXMISSING) {
|
|
67
|
+
parser.push('INDEXMISSING');
|
|
68
|
+
}
|
|
69
|
+
switch (fieldOptions.type) {
|
|
70
|
+
case exports.SCHEMA_FIELD_TYPE.TEXT:
|
|
71
|
+
if (fieldOptions.NOSTEM) {
|
|
72
|
+
parser.push('NOSTEM');
|
|
73
|
+
}
|
|
74
|
+
if (fieldOptions.WEIGHT !== undefined) {
|
|
75
|
+
parser.push('WEIGHT', fieldOptions.WEIGHT.toString());
|
|
76
|
+
}
|
|
77
|
+
if (fieldOptions.PHONETIC) {
|
|
78
|
+
parser.push('PHONETIC', fieldOptions.PHONETIC);
|
|
79
|
+
}
|
|
80
|
+
if (fieldOptions.WITHSUFFIXTRIE) {
|
|
81
|
+
parser.push('WITHSUFFIXTRIE');
|
|
82
|
+
}
|
|
83
|
+
if (fieldOptions.INDEXEMPTY) {
|
|
84
|
+
parser.push('INDEXEMPTY');
|
|
85
|
+
}
|
|
86
|
+
parseCommonSchemaFieldOptions(parser, fieldOptions);
|
|
87
|
+
break;
|
|
88
|
+
case exports.SCHEMA_FIELD_TYPE.NUMERIC:
|
|
89
|
+
case exports.SCHEMA_FIELD_TYPE.GEO:
|
|
90
|
+
parseCommonSchemaFieldOptions(parser, fieldOptions);
|
|
91
|
+
break;
|
|
92
|
+
case exports.SCHEMA_FIELD_TYPE.TAG:
|
|
93
|
+
if (fieldOptions.SEPARATOR) {
|
|
94
|
+
parser.push('SEPARATOR', fieldOptions.SEPARATOR);
|
|
95
|
+
}
|
|
96
|
+
if (fieldOptions.CASESENSITIVE) {
|
|
97
|
+
parser.push('CASESENSITIVE');
|
|
98
|
+
}
|
|
99
|
+
if (fieldOptions.WITHSUFFIXTRIE) {
|
|
100
|
+
parser.push('WITHSUFFIXTRIE');
|
|
101
|
+
}
|
|
102
|
+
if (fieldOptions.INDEXEMPTY) {
|
|
103
|
+
parser.push('INDEXEMPTY');
|
|
104
|
+
}
|
|
105
|
+
parseCommonSchemaFieldOptions(parser, fieldOptions);
|
|
106
|
+
break;
|
|
107
|
+
case exports.SCHEMA_FIELD_TYPE.VECTOR:
|
|
108
|
+
parser.push(fieldOptions.ALGORITHM);
|
|
109
|
+
const args = [];
|
|
110
|
+
args.push('TYPE', fieldOptions.TYPE, 'DIM', fieldOptions.DIM.toString(), 'DISTANCE_METRIC', fieldOptions.DISTANCE_METRIC);
|
|
111
|
+
if (fieldOptions.INITIAL_CAP !== undefined) {
|
|
112
|
+
args.push('INITIAL_CAP', fieldOptions.INITIAL_CAP.toString());
|
|
113
|
+
}
|
|
114
|
+
switch (fieldOptions.ALGORITHM) {
|
|
115
|
+
case exports.SCHEMA_VECTOR_FIELD_ALGORITHM.FLAT:
|
|
116
|
+
if (fieldOptions.BLOCK_SIZE !== undefined) {
|
|
117
|
+
args.push('BLOCK_SIZE', fieldOptions.BLOCK_SIZE.toString());
|
|
118
|
+
}
|
|
119
|
+
break;
|
|
120
|
+
case exports.SCHEMA_VECTOR_FIELD_ALGORITHM.HNSW:
|
|
121
|
+
if (fieldOptions.M !== undefined) {
|
|
122
|
+
args.push('M', fieldOptions.M.toString());
|
|
123
|
+
}
|
|
124
|
+
if (fieldOptions.EF_CONSTRUCTION !== undefined) {
|
|
125
|
+
args.push('EF_CONSTRUCTION', fieldOptions.EF_CONSTRUCTION.toString());
|
|
126
|
+
}
|
|
127
|
+
if (fieldOptions.EF_RUNTIME !== undefined) {
|
|
128
|
+
args.push('EF_RUNTIME', fieldOptions.EF_RUNTIME.toString());
|
|
129
|
+
}
|
|
130
|
+
break;
|
|
131
|
+
case exports.SCHEMA_VECTOR_FIELD_ALGORITHM['VAMANA']:
|
|
132
|
+
if (fieldOptions.COMPRESSION) {
|
|
133
|
+
args.push('COMPRESSION', fieldOptions.COMPRESSION);
|
|
134
|
+
}
|
|
135
|
+
if (fieldOptions.CONSTRUCTION_WINDOW_SIZE !== undefined) {
|
|
136
|
+
args.push('CONSTRUCTION_WINDOW_SIZE', fieldOptions.CONSTRUCTION_WINDOW_SIZE.toString());
|
|
137
|
+
}
|
|
138
|
+
if (fieldOptions.GRAPH_MAX_DEGREE !== undefined) {
|
|
139
|
+
args.push('GRAPH_MAX_DEGREE', fieldOptions.GRAPH_MAX_DEGREE.toString());
|
|
140
|
+
}
|
|
141
|
+
if (fieldOptions.SEARCH_WINDOW_SIZE !== undefined) {
|
|
142
|
+
args.push('SEARCH_WINDOW_SIZE', fieldOptions.SEARCH_WINDOW_SIZE.toString());
|
|
143
|
+
}
|
|
144
|
+
if (fieldOptions.EPSILON !== undefined) {
|
|
145
|
+
args.push('EPSILON', fieldOptions.EPSILON.toString());
|
|
146
|
+
}
|
|
147
|
+
if (fieldOptions.TRAINING_THRESHOLD !== undefined) {
|
|
148
|
+
args.push('TRAINING_THRESHOLD', fieldOptions.TRAINING_THRESHOLD.toString());
|
|
149
|
+
}
|
|
150
|
+
if (fieldOptions.REDUCE !== undefined) {
|
|
151
|
+
args.push('REDUCE', fieldOptions.REDUCE.toString());
|
|
152
|
+
}
|
|
153
|
+
break;
|
|
154
|
+
}
|
|
155
|
+
parser.pushVariadicWithLength(args);
|
|
156
|
+
break;
|
|
157
|
+
case exports.SCHEMA_FIELD_TYPE.GEOSHAPE:
|
|
158
|
+
if (fieldOptions.COORD_SYSTEM !== undefined) {
|
|
159
|
+
parser.push('COORD_SYSTEM', fieldOptions.COORD_SYSTEM);
|
|
160
|
+
}
|
|
161
|
+
break;
|
|
162
|
+
}
|
|
157
163
|
}
|
|
158
164
|
}
|
|
159
165
|
}
|
|
@@ -192,7 +198,8 @@ exports.default = {
|
|
|
192
198
|
* Creates a new search index with the given schema and options.
|
|
193
199
|
* @param parser - The command parser
|
|
194
200
|
* @param index - Name of the index to create
|
|
195
|
-
* @param schema - Index schema defining field names and types (TEXT, NUMERIC, GEO, TAG, VECTOR, GEOSHAPE)
|
|
201
|
+
* @param schema - Index schema defining field names and types (TEXT, NUMERIC, GEO, TAG, VECTOR, GEOSHAPE).
|
|
202
|
+
* Each field can be a single definition or an array to index the same field multiple times with different configurations.
|
|
196
203
|
* @param options - Optional parameters:
|
|
197
204
|
* - ON: Type of container to index (HASH or JSON)
|
|
198
205
|
* - PREFIX: Prefixes for document keys to index
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CREATE.js","sourceRoot":"","sources":["../../../lib/commands/CREATE.ts"],"names":[],"mappings":";;;AAEA,+FAA4H;AAE/G,QAAA,iBAAiB,GAAG;IAC/B,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE,SAAS;IAClB,GAAG,EAAE,KAAK;IACV,GAAG,EAAE,KAAK;IACV,MAAM,EAAE,QAAQ;IAChB,QAAQ,EAAE,UAAU;CACZ,CAAC;AAeE,QAAA,0BAA0B,GAAG;IACxC,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,OAAO;CACN,CAAC;AAuBE,QAAA,6BAA6B,GAAG;IAC3C,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;IACZ;;MAEE;IACF,MAAM,EAAE,YAAY;CACZ,CAAC;AAwBE,QAAA,4BAA4B,GAAG;IAC1C,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;IAChB,UAAU,EAAE,YAAY;IACxB,UAAU,EAAE,YAAY;CAChB,CAAC;AAwBE,QAAA,6BAA6B,GAAG;IAC3C,SAAS,EAAE,WAAW;IACtB,IAAI,EAAE,MAAM;CACJ,CAAC;
|
|
1
|
+
{"version":3,"file":"CREATE.js","sourceRoot":"","sources":["../../../lib/commands/CREATE.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { CommandParser } from "@redis/client/dist/lib/client/parser";
|
|
3
|
+
import { RedisArgument, ReplyUnion } from "@redis/client/dist/lib/RESP/types";
|
|
4
|
+
import { RedisVariadicArgument } from "@redis/client/dist/lib/commands/generic-transformers";
|
|
5
|
+
import { GroupByReducers } from "./AGGREGATE";
|
|
6
|
+
/**
|
|
7
|
+
* Text search expression configuration for hybrid search.
|
|
8
|
+
*/
|
|
9
|
+
export interface FtHybridSearchExpression {
|
|
10
|
+
/** Search query string or parameter reference (e.g., "$q") */
|
|
11
|
+
query: RedisArgument;
|
|
12
|
+
/** Scoring algorithm configuration */
|
|
13
|
+
SCORER?: RedisArgument;
|
|
14
|
+
/** Alias for the text search score in results */
|
|
15
|
+
YIELD_SCORE_AS?: RedisArgument;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Vector search method configuration - either KNN or RANGE.
|
|
19
|
+
*/
|
|
20
|
+
export declare const FT_HYBRID_VECTOR_METHOD: {
|
|
21
|
+
/** K-Nearest Neighbors search configuration */
|
|
22
|
+
readonly KNN: "KNN";
|
|
23
|
+
/** Range-based vector search configuration */
|
|
24
|
+
readonly RANGE: "RANGE";
|
|
25
|
+
};
|
|
26
|
+
/** Vector search method type */
|
|
27
|
+
export type FtHybridVectorMethodType = (typeof FT_HYBRID_VECTOR_METHOD)[keyof typeof FT_HYBRID_VECTOR_METHOD];
|
|
28
|
+
interface FtHybridVectorMethodKNN {
|
|
29
|
+
type: (typeof FT_HYBRID_VECTOR_METHOD)["KNN"];
|
|
30
|
+
/** Number of nearest neighbors to find */
|
|
31
|
+
K: number;
|
|
32
|
+
/** Controls the search accuracy vs. speed tradeoff */
|
|
33
|
+
EF_RUNTIME?: number;
|
|
34
|
+
}
|
|
35
|
+
interface FtHybridVectorMethodRange {
|
|
36
|
+
type: (typeof FT_HYBRID_VECTOR_METHOD)["RANGE"];
|
|
37
|
+
/** Maximum distance for matches */
|
|
38
|
+
RADIUS: number;
|
|
39
|
+
/** Provides additional precision control */
|
|
40
|
+
EPSILON?: number;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Vector similarity search expression configuration.
|
|
44
|
+
*/
|
|
45
|
+
export interface FtHybridVectorExpression {
|
|
46
|
+
/** Vector field name (e.g., "@embedding") */
|
|
47
|
+
field: RedisArgument;
|
|
48
|
+
/** Vector parameter reference (e.g., "$v") */
|
|
49
|
+
vector: string;
|
|
50
|
+
/** Search method configuration - KNN or RANGE */
|
|
51
|
+
method?: FtHybridVectorMethodKNN | FtHybridVectorMethodRange;
|
|
52
|
+
/** Pre-filter expression applied before vector search (e.g., "@tag:{foo}") */
|
|
53
|
+
FILTER?: RedisArgument;
|
|
54
|
+
/** Alias for the vector score in results */
|
|
55
|
+
YIELD_SCORE_AS?: RedisArgument;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Score fusion method type constants for combining search results.
|
|
59
|
+
*/
|
|
60
|
+
export declare const FT_HYBRID_COMBINE_METHOD: {
|
|
61
|
+
/** Reciprocal Rank Fusion */
|
|
62
|
+
readonly RRF: "RRF";
|
|
63
|
+
/** Linear combination with ALPHA and BETA weights */
|
|
64
|
+
readonly LINEAR: "LINEAR";
|
|
65
|
+
};
|
|
66
|
+
/** Combine method type */
|
|
67
|
+
export type FtHybridCombineMethodType = (typeof FT_HYBRID_COMBINE_METHOD)[keyof typeof FT_HYBRID_COMBINE_METHOD];
|
|
68
|
+
interface FtHybridCombineMethodRRF {
|
|
69
|
+
type: (typeof FT_HYBRID_COMBINE_METHOD)["RRF"];
|
|
70
|
+
/** RRF constant for score calculation */
|
|
71
|
+
CONSTANT?: number;
|
|
72
|
+
/** Window size for score normalization */
|
|
73
|
+
WINDOW?: number;
|
|
74
|
+
}
|
|
75
|
+
interface FtHybridCombineMethodLinear {
|
|
76
|
+
type: (typeof FT_HYBRID_COMBINE_METHOD)["LINEAR"];
|
|
77
|
+
/** Weight for text search score */
|
|
78
|
+
ALPHA?: number;
|
|
79
|
+
/** Weight for vector search score */
|
|
80
|
+
BETA?: number;
|
|
81
|
+
/** Window size for score normalization */
|
|
82
|
+
WINDOW?: number;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Apply expression for result transformation.
|
|
86
|
+
*/
|
|
87
|
+
export interface FtHybridApply {
|
|
88
|
+
/** Transformation expression to apply */
|
|
89
|
+
expression: RedisArgument;
|
|
90
|
+
/** Alias for the computed value in output */
|
|
91
|
+
AS?: RedisArgument;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Options for the FT.HYBRID command.
|
|
95
|
+
*/
|
|
96
|
+
export interface FtHybridOptions {
|
|
97
|
+
/** Text search expression configuration */
|
|
98
|
+
SEARCH: FtHybridSearchExpression;
|
|
99
|
+
/** Vector similarity search expression configuration */
|
|
100
|
+
VSIM: FtHybridVectorExpression;
|
|
101
|
+
/** Score fusion configuration for combining SEARCH and VSIM results */
|
|
102
|
+
COMBINE?: {
|
|
103
|
+
/** Fusion method: RRF or LINEAR */
|
|
104
|
+
method: FtHybridCombineMethodRRF | FtHybridCombineMethodLinear;
|
|
105
|
+
/** Alias for the combined score in results */
|
|
106
|
+
YIELD_SCORE_AS?: RedisArgument;
|
|
107
|
+
};
|
|
108
|
+
/**
|
|
109
|
+
* Fields to load and return in results (LOAD clause).
|
|
110
|
+
* - Use `"*"` to load all fields from documents
|
|
111
|
+
* - Use a field name or array of field names to load specific fields
|
|
112
|
+
*/
|
|
113
|
+
LOAD?: RedisVariadicArgument;
|
|
114
|
+
/** Group by configuration for aggregation */
|
|
115
|
+
GROUPBY?: {
|
|
116
|
+
/** Fields to group by */
|
|
117
|
+
fields: RedisVariadicArgument;
|
|
118
|
+
/** Reducer(s) to apply to each group */
|
|
119
|
+
REDUCE?: GroupByReducers | Array<GroupByReducers>;
|
|
120
|
+
};
|
|
121
|
+
/** Apply expression(s) for result transformation */
|
|
122
|
+
APPLY?: FtHybridApply | Array<FtHybridApply>;
|
|
123
|
+
/** Sort configuration for results */
|
|
124
|
+
SORTBY?: {
|
|
125
|
+
/** Fields to sort by with optional direction */
|
|
126
|
+
fields: Array<{
|
|
127
|
+
/** Field name to sort by */
|
|
128
|
+
field: RedisArgument;
|
|
129
|
+
/** Sort direction: "ASC" (ascending) or "DESC" (descending) */
|
|
130
|
+
direction?: "ASC" | "DESC";
|
|
131
|
+
}>;
|
|
132
|
+
};
|
|
133
|
+
/** Disable sorting - returns results in arbitrary order */
|
|
134
|
+
NOSORT?: boolean;
|
|
135
|
+
/** Post-filter expression applied after scoring */
|
|
136
|
+
FILTER?: RedisArgument;
|
|
137
|
+
/** Pagination configuration */
|
|
138
|
+
LIMIT?: {
|
|
139
|
+
/** Number of results to skip */
|
|
140
|
+
offset: number | RedisArgument;
|
|
141
|
+
/** Number of results to return */
|
|
142
|
+
count: number | RedisArgument;
|
|
143
|
+
};
|
|
144
|
+
/** Query parameters for parameterized queries */
|
|
145
|
+
PARAMS?: Record<string, string | number | Buffer>;
|
|
146
|
+
/** Query timeout in milliseconds */
|
|
147
|
+
TIMEOUT?: number;
|
|
148
|
+
}
|
|
149
|
+
declare const _default: {
|
|
150
|
+
readonly NOT_KEYED_COMMAND: true;
|
|
151
|
+
readonly IS_READ_ONLY: true;
|
|
152
|
+
/**
|
|
153
|
+
* Performs a hybrid search combining multiple search expressions.
|
|
154
|
+
* Supports multiple SEARCH and VECTOR expressions with various fusion methods.
|
|
155
|
+
*
|
|
156
|
+
* @experimental
|
|
157
|
+
* NOTE: FT.Hybrid is still in experimental state
|
|
158
|
+
* It's behaviour and function signature may change
|
|
159
|
+
*
|
|
160
|
+
* @param parser - The command parser
|
|
161
|
+
* @param index - The index name to search
|
|
162
|
+
* @param options - Hybrid search options including:
|
|
163
|
+
* - SEARCH: Text search expression with optional scoring
|
|
164
|
+
* - VSIM: Vector similarity expression with KNN/RANGE methods
|
|
165
|
+
* - COMBINE: Fusion method (RRF, LINEAR)
|
|
166
|
+
* - Post-processing operations: LOAD, GROUPBY, APPLY, SORTBY, FILTER
|
|
167
|
+
* - Tunable options: LIMIT, PARAMS, TIMEOUT
|
|
168
|
+
*/
|
|
169
|
+
readonly parseCommand: (this: void, parser: CommandParser, index: RedisArgument, options: FtHybridOptions) => void;
|
|
170
|
+
readonly transformReply: {
|
|
171
|
+
readonly 2: (reply: any) => HybridSearchResult;
|
|
172
|
+
readonly 3: () => ReplyUnion;
|
|
173
|
+
};
|
|
174
|
+
readonly unstableResp3: true;
|
|
175
|
+
};
|
|
176
|
+
export default _default;
|
|
177
|
+
export interface HybridSearchResult {
|
|
178
|
+
totalResults: number;
|
|
179
|
+
executionTime: number;
|
|
180
|
+
warnings: string[];
|
|
181
|
+
results: Record<string, any>[];
|
|
182
|
+
}
|
|
183
|
+
//# sourceMappingURL=HYBRID.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HYBRID.d.ts","sourceRoot":"","sources":["../../../lib/commands/HYBRID.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,273 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FT_HYBRID_COMBINE_METHOD = exports.FT_HYBRID_VECTOR_METHOD = void 0;
|
|
4
|
+
const generic_transformers_1 = require("@redis/client/dist/lib/commands/generic-transformers");
|
|
5
|
+
const SEARCH_1 = require("./SEARCH");
|
|
6
|
+
const AGGREGATE_1 = require("./AGGREGATE");
|
|
7
|
+
/**
|
|
8
|
+
* Vector search method configuration - either KNN or RANGE.
|
|
9
|
+
*/
|
|
10
|
+
exports.FT_HYBRID_VECTOR_METHOD = {
|
|
11
|
+
/** K-Nearest Neighbors search configuration */
|
|
12
|
+
KNN: "KNN",
|
|
13
|
+
/** Range-based vector search configuration */
|
|
14
|
+
RANGE: "RANGE",
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* Score fusion method type constants for combining search results.
|
|
18
|
+
*/
|
|
19
|
+
exports.FT_HYBRID_COMBINE_METHOD = {
|
|
20
|
+
/** Reciprocal Rank Fusion */
|
|
21
|
+
RRF: "RRF",
|
|
22
|
+
/** Linear combination with ALPHA and BETA weights */
|
|
23
|
+
LINEAR: "LINEAR",
|
|
24
|
+
};
|
|
25
|
+
function parseSearchExpression(parser, search) {
|
|
26
|
+
parser.push("SEARCH", search.query);
|
|
27
|
+
if (search.SCORER) {
|
|
28
|
+
parser.push("SCORER", search.SCORER);
|
|
29
|
+
}
|
|
30
|
+
if (search.YIELD_SCORE_AS) {
|
|
31
|
+
parser.push("YIELD_SCORE_AS", search.YIELD_SCORE_AS);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
function parseVectorExpression(parser, vsim) {
|
|
35
|
+
parser.push("VSIM", vsim.field, vsim.vector);
|
|
36
|
+
if (vsim.method) {
|
|
37
|
+
if (vsim.method.type === exports.FT_HYBRID_VECTOR_METHOD.KNN) {
|
|
38
|
+
let argsCount = 2;
|
|
39
|
+
if (vsim.method.EF_RUNTIME !== undefined) {
|
|
40
|
+
argsCount += 2;
|
|
41
|
+
}
|
|
42
|
+
parser.push("KNN", argsCount.toString(), "K", vsim.method.K.toString());
|
|
43
|
+
if (vsim.method.EF_RUNTIME !== undefined) {
|
|
44
|
+
parser.push("EF_RUNTIME", vsim.method.EF_RUNTIME.toString());
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
if (vsim.method.type === exports.FT_HYBRID_VECTOR_METHOD.RANGE) {
|
|
48
|
+
let argsCount = 2;
|
|
49
|
+
if (vsim.method.EPSILON !== undefined) {
|
|
50
|
+
argsCount += 2;
|
|
51
|
+
}
|
|
52
|
+
parser.push("RANGE", argsCount.toString(), "RADIUS", vsim.method.RADIUS.toString());
|
|
53
|
+
if (vsim.method.EPSILON !== undefined) {
|
|
54
|
+
parser.push("EPSILON", vsim.method.EPSILON.toString());
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
if (vsim.FILTER) {
|
|
59
|
+
parser.push("FILTER", vsim.FILTER);
|
|
60
|
+
}
|
|
61
|
+
if (vsim.YIELD_SCORE_AS) {
|
|
62
|
+
parser.push("YIELD_SCORE_AS", vsim.YIELD_SCORE_AS);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
function parseCombineMethod(parser, combine) {
|
|
66
|
+
if (!combine)
|
|
67
|
+
return;
|
|
68
|
+
parser.push("COMBINE");
|
|
69
|
+
if (combine.method.type === exports.FT_HYBRID_COMBINE_METHOD.RRF) {
|
|
70
|
+
// Calculate argsCount: 2 per optional (WINDOW, CONSTANT, YIELD_SCORE_AS)
|
|
71
|
+
let argsCount = 0;
|
|
72
|
+
if (combine.method.WINDOW !== undefined) {
|
|
73
|
+
argsCount += 2;
|
|
74
|
+
}
|
|
75
|
+
if (combine.method.CONSTANT !== undefined) {
|
|
76
|
+
argsCount += 2;
|
|
77
|
+
}
|
|
78
|
+
if (combine.YIELD_SCORE_AS) {
|
|
79
|
+
argsCount += 2;
|
|
80
|
+
}
|
|
81
|
+
parser.push("RRF", argsCount.toString());
|
|
82
|
+
if (combine.method.WINDOW !== undefined) {
|
|
83
|
+
parser.push("WINDOW", combine.method.WINDOW.toString());
|
|
84
|
+
}
|
|
85
|
+
if (combine.method.CONSTANT !== undefined) {
|
|
86
|
+
parser.push("CONSTANT", combine.method.CONSTANT.toString());
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
if (combine.method.type === exports.FT_HYBRID_COMBINE_METHOD.LINEAR) {
|
|
90
|
+
// Calculate argsCount: 2 per optional (ALPHA, BETA, WINDOW, YIELD_SCORE_AS)
|
|
91
|
+
let argsCount = 0;
|
|
92
|
+
if (combine.method.ALPHA !== undefined) {
|
|
93
|
+
argsCount += 2;
|
|
94
|
+
}
|
|
95
|
+
if (combine.method.BETA !== undefined) {
|
|
96
|
+
argsCount += 2;
|
|
97
|
+
}
|
|
98
|
+
if (combine.method.WINDOW !== undefined) {
|
|
99
|
+
argsCount += 2;
|
|
100
|
+
}
|
|
101
|
+
if (combine.YIELD_SCORE_AS) {
|
|
102
|
+
argsCount += 2;
|
|
103
|
+
}
|
|
104
|
+
parser.push("LINEAR", argsCount.toString());
|
|
105
|
+
if (combine.method.ALPHA !== undefined) {
|
|
106
|
+
parser.push("ALPHA", combine.method.ALPHA.toString());
|
|
107
|
+
}
|
|
108
|
+
if (combine.method.BETA !== undefined) {
|
|
109
|
+
parser.push("BETA", combine.method.BETA.toString());
|
|
110
|
+
}
|
|
111
|
+
if (combine.method.WINDOW !== undefined) {
|
|
112
|
+
parser.push("WINDOW", combine.method.WINDOW.toString());
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
if (combine.YIELD_SCORE_AS) {
|
|
116
|
+
parser.push("YIELD_SCORE_AS", combine.YIELD_SCORE_AS);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
function parseApply(parser, apply) {
|
|
120
|
+
parser.push("APPLY", apply.expression);
|
|
121
|
+
if (apply.AS) {
|
|
122
|
+
parser.push("AS", apply.AS);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
function parseHybridOptions(parser, options) {
|
|
126
|
+
parseSearchExpression(parser, options.SEARCH);
|
|
127
|
+
parseVectorExpression(parser, options.VSIM);
|
|
128
|
+
if (options.COMBINE) {
|
|
129
|
+
parseCombineMethod(parser, options.COMBINE);
|
|
130
|
+
}
|
|
131
|
+
if (options.LOAD) {
|
|
132
|
+
if (options.LOAD === "*") {
|
|
133
|
+
parser.push("LOAD", "*");
|
|
134
|
+
}
|
|
135
|
+
else {
|
|
136
|
+
(0, generic_transformers_1.parseOptionalVariadicArgument)(parser, "LOAD", options.LOAD);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
if (options.GROUPBY) {
|
|
140
|
+
(0, generic_transformers_1.parseOptionalVariadicArgument)(parser, "GROUPBY", options.GROUPBY.fields);
|
|
141
|
+
if (options.GROUPBY.REDUCE) {
|
|
142
|
+
const reducers = Array.isArray(options.GROUPBY.REDUCE)
|
|
143
|
+
? options.GROUPBY.REDUCE
|
|
144
|
+
: [options.GROUPBY.REDUCE];
|
|
145
|
+
for (const reducer of reducers) {
|
|
146
|
+
(0, AGGREGATE_1.parseGroupByReducer)(parser, reducer);
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
if (options.APPLY) {
|
|
151
|
+
const applies = Array.isArray(options.APPLY)
|
|
152
|
+
? options.APPLY
|
|
153
|
+
: [options.APPLY];
|
|
154
|
+
for (const apply of applies) {
|
|
155
|
+
parseApply(parser, apply);
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
if (options.SORTBY) {
|
|
159
|
+
const sortByArgsCount = options.SORTBY.fields.reduce((acc, field) => {
|
|
160
|
+
if (field.direction) {
|
|
161
|
+
return acc + 2;
|
|
162
|
+
}
|
|
163
|
+
return acc + 1;
|
|
164
|
+
}, 0);
|
|
165
|
+
parser.push("SORTBY", sortByArgsCount.toString());
|
|
166
|
+
for (const sortField of options.SORTBY.fields) {
|
|
167
|
+
parser.push(sortField.field);
|
|
168
|
+
if (sortField.direction) {
|
|
169
|
+
parser.push(sortField.direction);
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
if (options.NOSORT) {
|
|
174
|
+
parser.push("NOSORT");
|
|
175
|
+
}
|
|
176
|
+
if (options.FILTER) {
|
|
177
|
+
parser.push("FILTER", options.FILTER);
|
|
178
|
+
}
|
|
179
|
+
if (options.LIMIT) {
|
|
180
|
+
parser.push("LIMIT", options.LIMIT.offset.toString(), options.LIMIT.count.toString());
|
|
181
|
+
}
|
|
182
|
+
const hasParams = options.PARAMS && Object.keys(options.PARAMS).length > 0;
|
|
183
|
+
(0, SEARCH_1.parseParamsArgument)(parser, hasParams ? options.PARAMS : undefined);
|
|
184
|
+
if (options.TIMEOUT !== undefined) {
|
|
185
|
+
parser.push("TIMEOUT", options.TIMEOUT.toString());
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
exports.default = {
|
|
189
|
+
NOT_KEYED_COMMAND: true,
|
|
190
|
+
IS_READ_ONLY: true,
|
|
191
|
+
/**
|
|
192
|
+
* Performs a hybrid search combining multiple search expressions.
|
|
193
|
+
* Supports multiple SEARCH and VECTOR expressions with various fusion methods.
|
|
194
|
+
*
|
|
195
|
+
* @experimental
|
|
196
|
+
* NOTE: FT.Hybrid is still in experimental state
|
|
197
|
+
* It's behaviour and function signature may change
|
|
198
|
+
*
|
|
199
|
+
* @param parser - The command parser
|
|
200
|
+
* @param index - The index name to search
|
|
201
|
+
* @param options - Hybrid search options including:
|
|
202
|
+
* - SEARCH: Text search expression with optional scoring
|
|
203
|
+
* - VSIM: Vector similarity expression with KNN/RANGE methods
|
|
204
|
+
* - COMBINE: Fusion method (RRF, LINEAR)
|
|
205
|
+
* - Post-processing operations: LOAD, GROUPBY, APPLY, SORTBY, FILTER
|
|
206
|
+
* - Tunable options: LIMIT, PARAMS, TIMEOUT
|
|
207
|
+
*/
|
|
208
|
+
parseCommand(parser, index, options) {
|
|
209
|
+
parser.push("FT.HYBRID", index);
|
|
210
|
+
parseHybridOptions(parser, options);
|
|
211
|
+
},
|
|
212
|
+
transformReply: {
|
|
213
|
+
2: (reply) => {
|
|
214
|
+
return transformHybridSearchResults(reply);
|
|
215
|
+
},
|
|
216
|
+
3: undefined,
|
|
217
|
+
},
|
|
218
|
+
unstableResp3: true,
|
|
219
|
+
};
|
|
220
|
+
function transformHybridSearchResults(reply) {
|
|
221
|
+
// FT.HYBRID returns a map-like structure as flat array:
|
|
222
|
+
// ['total_results', N, 'results', [...], 'warnings', [...], 'execution_time', 'X.XXX']
|
|
223
|
+
const replyMap = parseReplyMap(reply);
|
|
224
|
+
const totalResults = replyMap["total_results"] ?? 0;
|
|
225
|
+
const rawResults = replyMap["results"] ?? [];
|
|
226
|
+
const warnings = replyMap["warnings"] ?? [];
|
|
227
|
+
const executionTime = replyMap["execution_time"]
|
|
228
|
+
? Number.parseFloat(replyMap["execution_time"])
|
|
229
|
+
: 0;
|
|
230
|
+
const results = [];
|
|
231
|
+
for (const result of rawResults) {
|
|
232
|
+
// Each result is a flat key-value array like FT.AGGREGATE: ['field1', 'value1', 'field2', 'value2', ...]
|
|
233
|
+
const resultMap = parseReplyMap(result);
|
|
234
|
+
const doc = Object.create(null);
|
|
235
|
+
// Add all other fields from the result
|
|
236
|
+
for (const [key, value] of Object.entries(resultMap)) {
|
|
237
|
+
if (key === "$") {
|
|
238
|
+
// JSON document - parse and merge
|
|
239
|
+
try {
|
|
240
|
+
Object.assign(doc, JSON.parse(value));
|
|
241
|
+
}
|
|
242
|
+
catch {
|
|
243
|
+
doc[key] = value;
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
else {
|
|
247
|
+
doc[key] = value;
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
results.push(doc);
|
|
251
|
+
}
|
|
252
|
+
return {
|
|
253
|
+
totalResults,
|
|
254
|
+
executionTime,
|
|
255
|
+
warnings,
|
|
256
|
+
results,
|
|
257
|
+
};
|
|
258
|
+
}
|
|
259
|
+
function parseReplyMap(reply) {
|
|
260
|
+
const map = {};
|
|
261
|
+
if (!Array.isArray(reply)) {
|
|
262
|
+
return map;
|
|
263
|
+
}
|
|
264
|
+
for (let i = 0; i < reply.length; i += 2) {
|
|
265
|
+
const key = reply[i];
|
|
266
|
+
const value = reply[i + 1];
|
|
267
|
+
if (typeof key === "string") {
|
|
268
|
+
map[key] = value;
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
return map;
|
|
272
|
+
}
|
|
273
|
+
//# sourceMappingURL=HYBRID.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HYBRID.js","sourceRoot":"","sources":["../../../lib/commands/HYBRID.ts"],"names":[],"mappings":"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"}
|
|
@@ -268,6 +268,26 @@ declare const _default: {
|
|
|
268
268
|
readonly parseCommand: (this: void, parser: import("@redis/client").CommandParser, index: import("@redis/client").RedisArgument, query: import("@redis/client").RedisArgument, options?: import("./EXPLAINCLI").FtExplainCLIOptions | undefined) => void;
|
|
269
269
|
readonly transformReply: () => import("@redis/client/dist/lib/RESP/types").ArrayReply<import("@redis/client/dist/lib/RESP/types").BlobStringReply<string>>;
|
|
270
270
|
};
|
|
271
|
+
HYBRID: {
|
|
272
|
+
readonly NOT_KEYED_COMMAND: true;
|
|
273
|
+
readonly IS_READ_ONLY: true;
|
|
274
|
+
readonly parseCommand: (this: void, parser: import("@redis/client").CommandParser, index: import("@redis/client").RedisArgument, options: import("./HYBRID").FtHybridOptions) => void;
|
|
275
|
+
readonly transformReply: {
|
|
276
|
+
readonly 2: (reply: any) => import("./HYBRID").HybridSearchResult;
|
|
277
|
+
readonly 3: () => import("@redis/client/dist/lib/RESP/types").ReplyUnion;
|
|
278
|
+
};
|
|
279
|
+
readonly unstableResp3: true;
|
|
280
|
+
};
|
|
281
|
+
hybrid: {
|
|
282
|
+
readonly NOT_KEYED_COMMAND: true;
|
|
283
|
+
readonly IS_READ_ONLY: true;
|
|
284
|
+
readonly parseCommand: (this: void, parser: import("@redis/client").CommandParser, index: import("@redis/client").RedisArgument, options: import("./HYBRID").FtHybridOptions) => void;
|
|
285
|
+
readonly transformReply: {
|
|
286
|
+
readonly 2: (reply: any) => import("./HYBRID").HybridSearchResult;
|
|
287
|
+
readonly 3: () => import("@redis/client/dist/lib/RESP/types").ReplyUnion;
|
|
288
|
+
};
|
|
289
|
+
readonly unstableResp3: true;
|
|
290
|
+
};
|
|
271
291
|
INFO: {
|
|
272
292
|
readonly NOT_KEYED_COMMAND: true;
|
|
273
293
|
readonly IS_READ_ONLY: true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../lib/commands/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../lib/commands/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAmDE;;OAEG;;;;;;;IAEH;;OAEG;;;;;;;IAEH;;OAEG;;;;;;;IAEH;;OAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA7BL,wBAmFE"}
|
|
@@ -21,6 +21,7 @@ const DICTDUMP_1 = __importDefault(require("./DICTDUMP"));
|
|
|
21
21
|
const DROPINDEX_1 = __importDefault(require("./DROPINDEX"));
|
|
22
22
|
const EXPLAIN_1 = __importDefault(require("./EXPLAIN"));
|
|
23
23
|
const EXPLAINCLI_1 = __importDefault(require("./EXPLAINCLI"));
|
|
24
|
+
const HYBRID_1 = __importDefault(require("./HYBRID"));
|
|
24
25
|
const INFO_1 = __importDefault(require("./INFO"));
|
|
25
26
|
const PROFILE_SEARCH_1 = __importDefault(require("./PROFILE_SEARCH"));
|
|
26
27
|
const PROFILE_AGGREGATE_1 = __importDefault(require("./PROFILE_AGGREGATE"));
|
|
@@ -86,6 +87,8 @@ exports.default = {
|
|
|
86
87
|
explain: EXPLAIN_1.default,
|
|
87
88
|
EXPLAINCLI: EXPLAINCLI_1.default,
|
|
88
89
|
explainCli: EXPLAINCLI_1.default,
|
|
90
|
+
HYBRID: HYBRID_1.default,
|
|
91
|
+
hybrid: HYBRID_1.default,
|
|
89
92
|
INFO: INFO_1.default,
|
|
90
93
|
info: INFO_1.default,
|
|
91
94
|
PROFILESEARCH: PROFILE_SEARCH_1.default,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/commands/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/commands/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@redis/search",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.11.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"main": "./dist/lib/index.js",
|
|
6
6
|
"types": "./dist/lib/index.d.ts",
|
|
@@ -9,12 +9,12 @@
|
|
|
9
9
|
"!dist/tsconfig.tsbuildinfo"
|
|
10
10
|
],
|
|
11
11
|
"scripts": {
|
|
12
|
-
"test": "nyc -r text-summary -r lcov mocha -r tsx './lib/**/*.spec.ts'",
|
|
12
|
+
"test": "nyc -r text-summary -r lcov mocha -r tsx --reporter mocha-multi-reporters --reporter-options configFile=mocha-multi-reporter-config.json --exit './lib/**/*.spec.ts'",
|
|
13
13
|
"test-sourcemap": "mocha -r ts-node/register/transpile-only './lib/**/*.spec.ts'",
|
|
14
14
|
"release": "release-it"
|
|
15
15
|
},
|
|
16
16
|
"peerDependencies": {
|
|
17
|
-
"@redis/client": "^5.
|
|
17
|
+
"@redis/client": "^5.11.0"
|
|
18
18
|
},
|
|
19
19
|
"devDependencies": {
|
|
20
20
|
"@redis/test-utils": "*"
|