Vektor pengindeksan

Halaman ini menjelaskan cara menyimpan vektor dalam hash. {i>Hash<i} menyediakan cara yang efisien untuk menyimpan vektor di Redis.

Serialisasi data

Sebelum menyimpan vektor dalam {i>hash<i} Redis, vektor perlu dikonversi ke dalam format yang dipahami oleh Redis. Fungsi ini memerlukan serialisasi vektor ke dalam blob biner dengan ukuran yang sama dengan ukuran byte jenis data (misalnya, 4 untuk FLOAT32) dikalikan dengan jumlah dimensi vektor. Pilihan populer untuk vektor numerik adalah library NumPy Python:

Hubungkan ke Redis

Sebelum menyimpan vektor dalam hash, buat koneksi ke instance Redis Anda menggunakan klien seperti redis-py:

Menyimpan vektor dalam sebuah hash

Hash Redis mirip seperti kamus, yang memiliki pasangan nilai kunci. Gunakan perintah HSET Redis untuk menyimpan vektor serial Anda:

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
  • Agar pengindeksan berhasil, data vektor harus mematuhi dimensi dan jenis data yang ditetapkan pada skema indeks.

Indeks Pengisian Ulang

Pengisian ulang indeks dapat terjadi dalam salah satu skenario berikut:

  • Setelah indeks dibuat, prosedur pengisian ulang memindai keyspace Redis untuk menemukan entri yang memenuhi kriteria filter indeks.
  • Indeks vektor dan datanya dipertahankan dalam snapshot RDB. Saat file RDB dimuat, proses pengisian ulang indeks otomatis akan dipicu. Proses ini secara aktif mendeteksi dan mengintegrasikan setiap entri baru atau yang dimodifikasi ke dalam indeks sejak snapshot RDB dibuat, menjaga integritas indeks dan memastikan hasil saat ini.