You've already forked node-redis
mirror of
https://github.com/redis/node-redis.git
synced 2025-08-07 13:22:56 +03:00
Support Vector Similarity (#1785)
* ft.alter * support paramas * remove only and skip * merge * fix imports * add Vector field * update version * push attributes * typo * test * version check * remove .only * remove unued import * add support for DIALECT * clean code Co-authored-by: Avital-Fine <avital.fine@redis.com> Co-authored-by: leibale <leibale1998@gmail.com>
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
import { strict as assert } from 'assert';
|
||||
import testUtils, { GLOBAL } from '../test-utils';
|
||||
import { transformArguments } from './CREATE';
|
||||
import { SchemaFieldTypes, SchemaTextFieldPhonetics, RedisSearchLanguages } from '.';
|
||||
import { SchemaFieldTypes, SchemaTextFieldPhonetics, RedisSearchLanguages, VectorAlgorithms } from '.';
|
||||
|
||||
describe('CREATE', () => {
|
||||
describe('transformArguments', () => {
|
||||
@@ -126,6 +126,52 @@ describe('CREATE', () => {
|
||||
});
|
||||
});
|
||||
|
||||
describe('VECTOR', () => {
|
||||
it('Flat algorithm', () => {
|
||||
assert.deepEqual(
|
||||
transformArguments('index', {
|
||||
field: {
|
||||
type: SchemaFieldTypes.VECTOR,
|
||||
ALGORITHM: VectorAlgorithms.FLAT,
|
||||
TYPE: 'FLOAT32',
|
||||
DIM: 2,
|
||||
DISTANCE_METRIC: 'L2',
|
||||
INITIAL_CAP: 1000000,
|
||||
BLOCK_SIZE: 1000
|
||||
}
|
||||
}),
|
||||
[
|
||||
'FT.CREATE', 'index', 'SCHEMA', 'field', 'VECTOR', 'FLAT', '10', 'TYPE',
|
||||
'FLOAT32', 'DIM', '2', 'DISTANCE_METRIC', 'L2', 'INITIAL_CAP', '1000000',
|
||||
'BLOCK_SIZE', '1000'
|
||||
]
|
||||
);
|
||||
});
|
||||
|
||||
it('HNSW algorithm', () => {
|
||||
assert.deepEqual(
|
||||
transformArguments('index', {
|
||||
field: {
|
||||
type: SchemaFieldTypes.VECTOR,
|
||||
ALGORITHM: VectorAlgorithms.HNSW,
|
||||
TYPE: 'FLOAT32',
|
||||
DIM: 2,
|
||||
DISTANCE_METRIC: 'L2',
|
||||
INITIAL_CAP: 1000000,
|
||||
M: 40,
|
||||
EF_CONSTRUCTION: 250,
|
||||
EF_RUNTIME: 20
|
||||
}
|
||||
}),
|
||||
[
|
||||
'FT.CREATE', 'index', 'SCHEMA', 'field', 'VECTOR', 'HNSW', '14', 'TYPE',
|
||||
'FLOAT32', 'DIM', '2', 'DISTANCE_METRIC', 'L2', 'INITIAL_CAP', '1000000',
|
||||
'M', '40', 'EF_CONSTRUCTION', '250', 'EF_RUNTIME', '20'
|
||||
]
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
describe('with generic options', () => {
|
||||
it('with AS', () => {
|
||||
assert.deepEqual(
|
||||
|
Reference in New Issue
Block a user