Multi Vector > 10000 documents throws scoring error
Los mantenedores suelen responder en 5 días
Nadie ha tomado este issue todavía.
- #574 de @JiwaniZakir — cerrado sin fusionar
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 38/100
Línea de trabajo
Comienza reproduciendo el ejemplo mediante MultiVectorQuery y SearchIndex.query con más de 10.000 documentos; después, sigue cómo se ensamblan las puntuaciones vectoriales y se pasan a RediSearch. Compara el caso que falla con el caso de <=10.000 documentos y con la solución alternativa case() mencionada. Se considera terminado cuando la consulta devuelve resultados sin el error de scoring distance_1 faltante con un número mayor de documentos.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
To reproduce:
from redisvl.query import MultiVectorQuery, Vector
from redisvl.index import SearchIndex
from redisvl.schema import IndexSchema
import numpy as np
from redis import Redis
client = Redis(host="localhost", port=6379, decode_responses=True)
test_index = SearchIndex(
IndexSchema.from_dict(
{
"index": {
"name": "idx:test",
"prefix": "test:",
"storage_type": "json",
},
"fields": [
{"name": "id", "type": "numeric"},
{
"name": "embedding_1",
"type": "vector",
"attrs": {
"dims": 512,
"distance_metric": "cosine",
"algorithm": "hnsw",
"datatype": "float32",
},
},
{
"name": "embedding_2",
"type": "vector",
"attrs": {
"dims": 512,
"distance_metric": "cosine",
"algorithm": "hnsw",
"datatype": "float32",
},
},
],
},
),
client,
validate_on_load=True,
)
test_index.create(overwrite=True)
TEST_DOCS_COUNT = 10001
test_data = [
{
"id": i,
"embedding_1": np.random.rand(512),
"embedding_2": np.random.rand(512),
}
for i, _ in enumerate(range(TEST_DOCS_COUNT))
]
test_index.load(test_data)
embedding_1 = np.random.rand(512)
embedding_2 = np.random.rand(512)
query_vectors = [
Vector(
vector=embedding_1,
field_name="embedding_1",
dtype="float32",
weight=0.7,
),
Vector(
vector=embedding_2,
field_name="embedding_2",
dtype="float32",
weight=0.2,
),
]
query = MultiVectorQuery(
vectors=query_vectors,
num_results=10,
return_fields=["id"],
)
results = test_index.query(query)
print(results)
With a TEST_DOCS_COUNT > 10,000 redis throws:
Error while aggregating: Could not find the value for a parameter name, consider using EXISTS if applicable for distance_1
<=10,000 works fine. I assume this is to do with the same logic that sets the max offset to 10,000 by default.
The workaround I'm using for now is the unstable feature case() to assign defaults for missing scores.
Is RediSearch limited by some design constraint to this number? Seems low for many applications of vector search, or maybe I'm missing something.
- Lenguaje dominante
- Python
- Estrellas
- 431
- Forks
- 107
- Merge medio
- 5 d 17 h
- PR fusionados (30 d)
- 16
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de redis/redis-vl-python
-
exists() depends on exact FT.INFO error wording; an unrecognised "missing index" message makes create() never create the index (regression from #672)Quizá libre de nuevo Un pull request para esta issue se cerró sin fusionarse. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
redis/redis-vl-python#773 ·
Los mantenedores suelen responder en 5 días
-
Vector field with index_missing=True cannot be createdPosiblemente ocupada @RaphaelFakhri la tomó hace 4 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
redis/redis-vl-python#770 ·
Los mantenedores suelen responder en 5 días
-
Add Python 3.15 supportPosiblemente ocupada @vishal-bala la tomó hace 5 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
redis/redis-vl-python#757 · 1 comentario · 1 reacción ·
Los mantenedores suelen responder en 5 días
-
SearchIndex.drop_keys does not validate cluster hash-tag co-location (inconsistent with drop_documents)Posiblemente ocupada @Hashim1999164 la tomó hace 3 días. Abiertobug good first issue index
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
redis/redis-vl-python#601 ·
Los mantenedores suelen responder en 5 días
-
documentation
Dificultad 1/5 Menos de una hora Aptitud para principiantes 62/100
redis/redis-vl-python#300 ·
Los mantenedores suelen responder en 5 días
Todos los issues de redis/redis-vl-python
Issues similares
-
bug good first issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
yunaremaia/proto-drift#22 ·
-
bug good first issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
yunaremaia/memwatch#96 ·
-
bug good first issue
Dificultad 1/5 Menos de una hora Aptitud para principiantes 91/100
yunaremaia/ci-gate-watch#34 ·
-
bug good first issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
yunaremaia/agent-capability-attestation#64 ·
Los mantenedores suelen responder en 1 día
-
bug good first issue
Dificultad 1/5 Menos de una hora Aptitud para principiantes 86/100
yunaremaia/agent-call-graph#43 ·
Los mantenedores suelen responder en 1 día