Skip to content

Commit 60ad6aa

Browse files
authored
close #2210 - add support for FT.CREATE WITHSUFFIXTRIE (#2212)
1 parent c1fd867 commit 60ad6aa

File tree

2 files changed

+34
-0
lines changed

2 files changed

+34
-0
lines changed

packages/search/lib/commands/CREATE.spec.ts

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,18 @@ describe('CREATE', () => {
5858
['FT.CREATE', 'index', 'SCHEMA', 'field', 'TEXT', 'PHONETIC', SchemaTextFieldPhonetics.DM_EN]
5959
);
6060
});
61+
62+
it('with WITHSUFFIXTRIE', () => {
63+
assert.deepEqual(
64+
transformArguments('index', {
65+
field: {
66+
type: SchemaFieldTypes.TEXT,
67+
WITHSUFFIXTRIE: true
68+
}
69+
}),
70+
['FT.CREATE', 'index', 'SCHEMA', 'field', 'TEXT', 'WITHSUFFIXTRIE']
71+
);
72+
});
6173
});
6274

6375
it('NUMERIC', () => {
@@ -124,6 +136,18 @@ describe('CREATE', () => {
124136
['FT.CREATE', 'index', 'SCHEMA', 'field', 'TAG', 'CASESENSITIVE']
125137
);
126138
});
139+
140+
it('with WITHSUFFIXTRIE', () => {
141+
assert.deepEqual(
142+
transformArguments('index', {
143+
field: {
144+
type: SchemaFieldTypes.TAG,
145+
WITHSUFFIXTRIE: true
146+
}
147+
}),
148+
['FT.CREATE', 'index', 'SCHEMA', 'field', 'TAG', 'WITHSUFFIXTRIE']
149+
);
150+
});
127151
});
128152

129153
describe('VECTOR', () => {

packages/search/lib/commands/index.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -206,6 +206,7 @@ type CreateSchemaTextField = CreateSchemaCommonField<SchemaFieldTypes.TEXT, {
206206
NOSTEM?: true;
207207
WEIGHT?: number;
208208
PHONETIC?: SchemaTextFieldPhonetics;
209+
WITHSUFFIXTRIE?: boolean;
209210
}>;
210211

211212
type CreateSchemaNumericField = CreateSchemaCommonField<SchemaFieldTypes.NUMERIC>;
@@ -215,6 +216,7 @@ type CreateSchemaGeoField = CreateSchemaCommonField<SchemaFieldTypes.GEO>;
215216
type CreateSchemaTagField = CreateSchemaCommonField<SchemaFieldTypes.TAG, {
216217
SEPARATOR?: string;
217218
CASESENSITIVE?: true;
219+
WITHSUFFIXTRIE?: boolean;
218220
}>;
219221

220222
export enum VectorAlgorithms {
@@ -282,6 +284,10 @@ export function pushSchema(args: RedisCommandArguments, schema: RediSearchSchema
282284
args.push('PHONETIC', fieldOptions.PHONETIC);
283285
}
284286

287+
if (fieldOptions.WITHSUFFIXTRIE) {
288+
args.push('WITHSUFFIXTRIE');
289+
}
290+
285291
break;
286292

287293
// case SchemaFieldTypes.NUMERIC:
@@ -297,6 +303,10 @@ export function pushSchema(args: RedisCommandArguments, schema: RediSearchSchema
297303
args.push('CASESENSITIVE');
298304
}
299305

306+
if (fieldOptions.WITHSUFFIXTRIE) {
307+
args.push('WITHSUFFIXTRIE');
308+
}
309+
300310
break;
301311

302312
case SchemaFieldTypes.VECTOR:

0 commit comments

Comments
 (0)