|
1 | 1 | import { strict as assert } from 'assert';
|
2 | 2 | import testUtils, { GLOBAL } from '../test-utils';
|
3 | 3 | import { transformArguments } from './CREATE';
|
4 |
| -import { SchemaFieldTypes, SchemaTextFieldPhonetics, RedisSearchLanguages } from '.'; |
| 4 | +import { SchemaFieldTypes, SchemaTextFieldPhonetics, RedisSearchLanguages, VectorAlgorithms } from '.'; |
5 | 5 |
|
6 | 6 | describe('CREATE', () => {
|
7 | 7 | describe('transformArguments', () => {
|
@@ -126,6 +126,52 @@ describe('CREATE', () => {
|
126 | 126 | });
|
127 | 127 | });
|
128 | 128 |
|
| 129 | + describe('VECTOR', () => { |
| 130 | + it('Flat algorithm', () => { |
| 131 | + assert.deepEqual( |
| 132 | + transformArguments('index', { |
| 133 | + field: { |
| 134 | + type: SchemaFieldTypes.VECTOR, |
| 135 | + ALGORITHM: VectorAlgorithms.FLAT, |
| 136 | + TYPE: 'FLOAT32', |
| 137 | + DIM: 2, |
| 138 | + DISTANCE_METRIC: 'L2', |
| 139 | + INITIAL_CAP: 1000000, |
| 140 | + BLOCK_SIZE: 1000 |
| 141 | + } |
| 142 | + }), |
| 143 | + [ |
| 144 | + 'FT.CREATE', 'index', 'SCHEMA', 'field', 'VECTOR', 'FLAT', '10', 'TYPE', |
| 145 | + 'FLOAT32', 'DIM', '2', 'DISTANCE_METRIC', 'L2', 'INITIAL_CAP', '1000000', |
| 146 | + 'BLOCK_SIZE', '1000' |
| 147 | + ] |
| 148 | + ); |
| 149 | + }); |
| 150 | + |
| 151 | + it('HNSW algorithm', () => { |
| 152 | + assert.deepEqual( |
| 153 | + transformArguments('index', { |
| 154 | + field: { |
| 155 | + type: SchemaFieldTypes.VECTOR, |
| 156 | + ALGORITHM: VectorAlgorithms.HNSW, |
| 157 | + TYPE: 'FLOAT32', |
| 158 | + DIM: 2, |
| 159 | + DISTANCE_METRIC: 'L2', |
| 160 | + INITIAL_CAP: 1000000, |
| 161 | + M: 40, |
| 162 | + EF_CONSTRUCTION: 250, |
| 163 | + EF_RUNTIME: 20 |
| 164 | + } |
| 165 | + }), |
| 166 | + [ |
| 167 | + 'FT.CREATE', 'index', 'SCHEMA', 'field', 'VECTOR', 'HNSW', '14', 'TYPE', |
| 168 | + 'FLOAT32', 'DIM', '2', 'DISTANCE_METRIC', 'L2', 'INITIAL_CAP', '1000000', |
| 169 | + 'M', '40', 'EF_CONSTRUCTION', '250', 'EF_RUNTIME', '20' |
| 170 | + ] |
| 171 | + ); |
| 172 | + }); |
| 173 | + }); |
| 174 | + |
129 | 175 | describe('with generic options', () => {
|
130 | 176 | it('with AS', () => {
|
131 | 177 | assert.deepEqual(
|
|
0 commit comments