Commit 379fa2b
committed
feat(schema): add SVS-VAMANA vector indexing algorithm support (#404)
Implements SVS-VAMANA algorithm with compression support for memory-efficient
vector search, porting functionality from Python redis-vl PR #404.
Changes:
- Expand VectorDataType enum with FLOAT16, BFLOAT16, INT8, UINT8
- Add CompressionType enum (LVQ4, LVQ4x4, LVQ4x8, LVQ8, LeanVec4x8, LeanVec8x8)
- Add SVS_VAMANA to Algorithm enum
- Add 7 SVS-specific parameters to VectorField (graphMaxDegree, constructionWindowSize,
searchWindowSize, svsEpsilon, compression, reduce, trainingThreshold)
- Implement SVS validation (datatype, reduce, compression constraints)
- Add builder methods for all SVS parameters
- Update toJedisSchemaField() to support SVS attributes
Tests:
- Add SVSVamanaFieldTest with 19 unit tests (all passing)
- Add SVSVamanaIntegrationTest with 7 integration tests (all passing)
- Add BaseSVSIntegrationTest using Redis 8.2 container
- Test all compression types, validation rules, and constraints
- Verify index creation, data loading, and search operations
Requirements:
- Redis ≥ 8.2.0 (available as redis:8.2 Docker image)
- RediSearch ≥ 2.8.10 or SearchLight ≥ 2.8.10
Python reference: PR #404 - SVS-VAMANA support
Ported from: redisvl/schema/fields.py1 parent 1253d12 commit 379fa2b
File tree
4 files changed
+1098
-8
lines changed- core/src
- main/java/com/redis/vl/schema
- test/java/com/redis/vl
- schema
4 files changed
+1098
-8
lines changed
0 commit comments