Skip to content

Commit 4887bd0

Browse files
committed
small refactor per discussion with leibele
1 parent 0e7e2e6 commit 4887bd0

File tree

2 files changed

+25
-14
lines changed

2 files changed

+25
-14
lines changed

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

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -448,9 +448,7 @@ describe('CREATE', () => {
448448
transformArguments('index', {
449449
field: {
450450
type: SchemaFieldTypes.TEXT,
451-
MISSING_VALUES: {
452-
INDEXEMPTY: true
453-
}
451+
INDEXEMPTY: true
454452
}
455453
}),
456454
['FT.CREATE', 'index', 'SCHEMA', 'field', 'TEXT', 'INDEXEMPTY']
@@ -462,14 +460,25 @@ describe('CREATE', () => {
462460
transformArguments('index', {
463461
field: {
464462
type: SchemaFieldTypes.TEXT,
465-
MISSING_VALUES: {
466-
INDEXMISSING: true
467-
}
463+
INDEXMISSING: true
468464
}
469465
}),
470466
['FT.CREATE', 'index', 'SCHEMA', 'field', 'TEXT', 'INDEXMISSING']
471467
);
472468
});
469+
470+
it('with INDEXEMPTY and INDEXMISSING', () => {
471+
assert.deepEqual(
472+
transformArguments('index', {
473+
field: {
474+
type: SchemaFieldTypes.TEXT,
475+
INDEXEMPTY: true,
476+
INDEXMISSING: true
477+
}
478+
}),
479+
['FT.CREATE', 'index', 'SCHEMA', 'field', 'TEXT', 'INDEXEMPTY', 'INDEXMISSING']
480+
);
481+
});
473482
});
474483
});
475484

packages/search/lib/commands/index.ts

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -190,8 +190,8 @@ export enum SchemaFieldTypes {
190190
}
191191

192192
export interface MissingValues {
193-
INDEXEMPTY?: boolean;
194-
INDEXMISSING?: boolean;
193+
INDEXEMPTY?: true;
194+
INDEXMISSING?: true;
195195
}
196196

197197
function pushMissingValues(args: RedisCommandArguments, missingValues?: MissingValues) {
@@ -214,7 +214,7 @@ type CreateSchemaField<
214214
> = T | ({
215215
type: T;
216216
AS?: string;
217-
MISSING_VALUES?: MissingValues;
217+
INDEXMISSING?: true;
218218
} & E);
219219

220220
type CreateSchemaCommonField<
@@ -240,6 +240,7 @@ type CreateSchemaTextField = CreateSchemaCommonField<SchemaFieldTypes.TEXT, {
240240
WEIGHT?: number;
241241
PHONETIC?: SchemaTextFieldPhonetics;
242242
WITHSUFFIXTRIE?: boolean;
243+
INDEXEMPTY?: true;
243244
}>;
244245

245246
type CreateSchemaNumericField = CreateSchemaCommonField<SchemaFieldTypes.NUMERIC>;
@@ -250,6 +251,7 @@ type CreateSchemaTagField = CreateSchemaCommonField<SchemaFieldTypes.TAG, {
250251
SEPARATOR?: string;
251252
CASESENSITIVE?: true;
252253
WITHSUFFIXTRIE?: boolean;
254+
INDEXEMPTY?: true;
253255
}>;
254256

255257
export enum VectorAlgorithms {
@@ -333,13 +335,13 @@ export function pushSchema(args: RedisCommandArguments, schema: RediSearchSchema
333335
args.push('WITHSUFFIXTRIE');
334336
}
335337

336-
pushMissingValues(args, fieldOptions.MISSING_VALUES);
338+
pushMissingValues(args, fieldOptions);
337339

338340
break;
339341

340342
case SchemaFieldTypes.NUMERIC:
341343
case SchemaFieldTypes.GEO:
342-
pushMissingValues(args, fieldOptions.MISSING_VALUES);
344+
pushMissingValues(args, fieldOptions);
343345
break;
344346

345347
case SchemaFieldTypes.TAG:
@@ -355,7 +357,7 @@ export function pushSchema(args: RedisCommandArguments, schema: RediSearchSchema
355357
args.push('WITHSUFFIXTRIE');
356358
}
357359

358-
pushMissingValues(args, fieldOptions.MISSING_VALUES);
360+
pushMissingValues(args, fieldOptions);
359361

360362
break;
361363

@@ -398,7 +400,7 @@ export function pushSchema(args: RedisCommandArguments, schema: RediSearchSchema
398400
}
399401
});
400402

401-
pushMissingValues(args, fieldOptions.MISSING_VALUES);
403+
pushMissingValues(args, fieldOptions);
402404

403405
continue; // vector fields do not contain SORTABLE and NOINDEX options
404406

@@ -407,7 +409,7 @@ export function pushSchema(args: RedisCommandArguments, schema: RediSearchSchema
407409
args.push('COORD_SYSTEM', fieldOptions.COORD_SYSTEM);
408410
}
409411

410-
pushMissingValues(args, fieldOptions.MISSING_VALUES);
412+
pushMissingValues(args, fieldOptions);
411413

412414
continue; // geo shape fields do not contain SORTABLE and NOINDEX options
413415
}

0 commit comments

Comments
 (0)