Vecteurs d'indexation

Cette page explique comment stocker des vecteurs dans des hachages. Les hachages constituent un moyen efficace de stocker des vecteurs dans Redis.

Sérialisation des données

Avant de stocker des vecteurs dans un hachage Redis, vous devez les convertir dans un format compatible avec Redis. Elle nécessite une sérialisation vectorielle en blobs binaires où la taille est égale à la taille en octets du type de données (par exemple, 4 pour FLOAT32) multiplié par le nombre de dimensions du vecteur. Un choix courant pour les vecteurs numériques est la bibliothèque NumPy Python:

Se connecter à Redis

Avant de stocker le vecteur dans un hachage, établissez une connexion à l'instance Redis à l'aide d'un client tel que redis-py:

Stocker le vecteur dans un hachage

Les hachages Redis sont comme des dictionnaires, avec des paires clé/valeur. Utilisez la commande Redis HSET pour stocker le vecteur sérialisé:

import numpy as np
import redis

# Sample vector
vector = np.array([1.2, 3.5, -0.8]) # 3-dimensional vector

# Serialize to a binary blob
serialized_vector = vector.tobytes()

redis_client = redis.Redis(host='your_redis_host', port=6379)

redis_client.hset('vector_storage', 'vector_key', serialized_vector)  # 'vector_key' is a unique identifier
  • Pour une indexation réussie, vos données vectorielles doivent respecter les dimensions et le type de données définis dans le schéma d'index.

Remplir des index

Le remplissage des index peut se produire dans l'un des scénarios suivants:

  • Une fois qu'un index est créé, la procédure de remplissage recherche dans l'espace de clés Redis les entrées qui répondent aux critères de filtre d'index.
  • Les index vectoriels et leurs données sont conservés dans des instantanés RDB. Lorsqu'un fichier RDB est chargé, un processus de remplissage automatique des index est déclenché. Ce processus détecte et intègre activement toutes les entrées nouvelles ou modifiées dans l'index depuis la création de l'instantané RDB, ce qui préserve l'intégrité de l'index et assure l'actualisation des résultats.