Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

from_existing fails on SVS-VAMANA indexes created without compression

Abierto Apto para principiantes
#787 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 4 días

@itsrayeedscodespace ya está trabajando en esto.

Desde el 27/10/2026.

  • #790 de @itsrayeedscodespace — abierto

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
84/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
python, redis

Línea de trabajo

Empieza por el bloque compression_mapping en redisvl/redis/connection.py y sigue cómo se usa su resultado para construir un IndexSchema. Añade una prueba unitaria con la estructura de FT.INFO indicada en el issue y comprueba después que NO_COMPRESSION produce un campo SVS sin atributo compression. Se considera terminado cuando el esquema se carga correctamente para ese caso.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

bug index

Description

SearchIndex.from_existing fails on any SVS-VAMANA index created without compression.

For such a field, FT.INFO reports compression NO_COMPRESSION. Measured on Redis 8.2.7, 8.4.7 and 8.10.0, for both HASH and JSON storage. convert_index_info_to_schema maps only GlobalSQ8 and GlobalSQ4 and passes any other value through unchanged (redisvl/redis/connection.py, the compression_mapping block). CompressionType accepts only the LVQ and LeanVec values, so building the schema raises a ValidationError and the index cannot be loaded at all.

Reproduction

This uses the field as FT.INFO returns it, so it needs no server:

from redisvl.redis.connection import convert_index_info_to_schema
from redisvl.schema import IndexSchema

info = {
    "index_name": "svs",
    "index_definition": {"key_type": "HASH", "prefixes": ["svs"]},
    "attributes": [{
        "identifier": "emb", "attribute": "emb", "type": "VECTOR",
        "algorithm": "SVS-VAMANA", "data_type": "FLOAT32", "dim": 3,
        "distance_metric": "COSINE", "compression": "NO_COMPRESSION",
        "graph_max_degree": 32, "construction_window_size": 200,
    }],
}
IndexSchema.from_dict(convert_index_info_to_schema(info))
pydantic_core._pydantic_core.ValidationError: 1 validation error for IndexSchema
attrs.compression
  Input should be 'LVQ4', 'LVQ4x4', 'LVQ4x8', 'LVQ8', 'LeanVec4x8' or 'LeanVec8x8' [type=enum, input_value='NO_COMPRESSION', input_type=str]

Expected behaviour

from_existing returns a schema whose SVS field has no compression attribute, matching how the index was created.

Proposed fix

Treat NO_COMPRESSION as the absence of compression and omit the key. A unit test built from the FT.INFO shape above would cover it.

Lenguaje dominante
Python
Estrellas
432
Forks
111
Merge medio
5 d 22 h
PR fusionados (30 d)
13

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de redis/redis-vl-python

Todos los issues de redis/redis-vl-python

Issues similares

Más issues de Python

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.