Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
KAKI. CREATE
Membuat indeks dan memulai pengurukan indeks itu. Untuk informasi selengkapnya, lihat Ikhtisar pencarian vektor untuk detail tentang konstruksi indeks.
Sintaksis
FT.CREATE <index-name> ON HASH | JSON [PREFIX <count> <prefix1> [<prefix2>...]] SCHEMA (<field-identifier> [AS <alias>] NUMERIC | TAG [SEPARATOR <sep>] [CASESENSITIVE] | TEXT | VECTOR [HNSW|FLAT] <attr_count> [<attribute_name> <attribute_value>]) )+
Skema
Pengidentifikasi bidang:
Untuk kunci hash, pengenal bidang adalah nama bidang.
Untuk JSON kunci, pengenal bidang adalah JSON jalur A.
Untuk informasi selengkapnya, lihat Jenis bidang indeks.
Jenis bidang:
TAG: Untuk informasi selengkapnya, lihat Tag
. NUMERIC: Bidang berisi angka.
TEXT: Bidang berisi gumpalan data.
VECTOR: bidang vektor yang mendukung pencarian vektor.
Algoritma — dapat berupa HNSW (Hierarchical Navigable Small World) atau FLAT (brute force).
attr_count
— jumlah atribut yang akan diteruskan sebagai konfigurasi algoritma, ini termasuk nama dan nilai.{attribute_name} {attribute_value}
— pasangan kunci/nilai khusus algoritma yang menentukan konfigurasi indeks.Untuk FLAT algoritma, atribut adalah:
Diperlukan:
DIM— Jumlah dimensi dalam vektor.
DISTANCE_ METRIC - Dapat menjadi salah satu dari [L2 | IP |COSINE].
TYPE— Jenis vektor. Satu-satunya jenis yang didukung adalah
FLOAT32
.
Opsional:
INITIAL_ CAP — Kapasitas vektor awal dalam indeks yang mempengaruhi ukuran alokasi memori indeks.
Untuk HNSW algoritma, atribut adalah:
Diperlukan:
TYPE— Jenis vektor. Satu-satunya jenis yang didukung adalah
FLOAT32
.DIM— Dimensi vektor, ditentukan sebagai bilangan bulat positif. Maksimal: 32768
DISTANCE_ METRIC - Dapat menjadi salah satu dari [L2 | IP |COSINE].
Opsional:
INITIAL_ CAP — Kapasitas vektor awal dalam indeks yang mempengaruhi ukuran alokasi memori indeks. Default ke 1024.
M — Jumlah tepi keluar maksimum yang diizinkan untuk setiap node dalam grafik di setiap lapisan. pada lapisan nol jumlah maksimal tepi keluar adalah 2M. Defaultnya adalah 16 Maksimum adalah 512.
EF_ CONSTRUCTION — mengontrol jumlah vektor yang diperiksa selama konstruksi indeks. Nilai yang lebih tinggi untuk parameter ini akan meningkatkan rasio penarikan dengan mengorbankan waktu pembuatan indeks yang lebih lama. Nilai default adalah 200. Nilai maksimum adalah 4096.
EF_ RUNTIME — mengontrol jumlah vektor yang diperiksa selama operasi kueri. Nilai yang lebih tinggi untuk parameter ini dapat menghasilkan penarikan yang lebih baik dengan mengorbankan waktu kueri yang lebih lama. Nilai parameter ini dapat diganti berdasarkan per-query. Nilai default adalah 10. Nilai maksimum adalah 4096.
Nilai yang ditampilkan
Mengembalikan string pesan OK sederhana atau balasan kesalahan.
Contoh
catatan
Contoh berikut menggunakan argumen asli valkey-cli
contoh 1: Buat beberapa indeks
Buat indeks untuk vektor ukuran 2
FT.CREATE hash_idx1 ON HASH PREFIX 1 hash: SCHEMA vec AS VEC VECTOR HNSW 6 DIM 2 TYPE FLOAT32 DISTANCE_METRIC L2 OK
Buat JSON indeks 6 dimensi menggunakan HNSW algoritma:
FT.CREATE json_idx1 ON JSON PREFIX 1 json: SCHEMA $.vec AS VEC VECTOR HNSW 6 DIM 6 TYPE FLOAT32 DISTANCE_METRIC L2 OK
contoh Contoh 2: Mengisi beberapa data
Perintah berikut diformat sehingga dapat dieksekusi sebagai argumen untuk program terminal redis-cli. Pengembang yang menggunakan klien bahasa pemrograman (seperti Python, Ruby, C #, dll.) Perlu mengikuti aturan penanganan lingkungan mereka untuk menangani string dan data biner.
Membuat beberapa data hash dan json:
HSET hash:0 vec "\x00\x00\x00\x00\x00\x00\x00\x00" HSET hash:1 vec "\x00\x00\x00\x00\x00\x00\x80\xbf" JSON.SET json:0 . '{"vec":[1,2,3,4,5,6]}' JSON.SET json:1 . '{"vec":[10,20,30,40,50,60]}' JSON.SET json:2 . '{"vec":[1.1,1.2,1.3,1.4,1.5,1.6]}'
Perhatikan hal berikut:
Kunci hash dan JSON data memiliki awalan definisi indeksnya.
Vektor berada pada jalur yang sesuai dari definisi indeks.
Vektor hash dimasukkan sebagai data hex sementara JSON data dimasukkan sebagai angka.
Vektor adalah panjang yang sesuai, entri vektor hash dua dimensi memiliki data hex senilai dua float, entri vektor json enam dimensi memiliki enam angka.
contoh Contoh 3: Hapus dan buat ulang indeks
FT.DROPINDEX json_idx1 OK FT.CREATE json_idx1 ON JSON PREFIX 1 json: SCHEMA $.vec AS VEC VECTOR FLAT 6 DIM 6 TYPE FLOAT32 DISTANCE_METRIC L2 OK
Perhatikan JSON indeks baru menggunakan FLAT
algoritma bukan HNSW
algoritma. Perhatikan juga bahwa itu akan mengindeks ulang JSON data yang ada:
FT.SEARCH json_idx1 "*=>[KNN 100 @VEC $query_vec]" PARAMS 2 query_vec "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" DIALECT 2 1) (integer) 3 2) "json:2" 3) 1) "__VEC_score" 2) "11.11" 3) "$" 4) "[{\"vec\":[1.1, 1.2, 1.3, 1.4, 1.5, 1.6]}]" 4) "json:0" 5) 1) "__VEC_score" 2) "91" 3) "$" 4) "[{\"vec\":[1.0, 2.0, 3.0, 4.0, 5.0, 6.0]}]" 6) "json:1" 7) 1) "__VEC_score" 2) "9100" 3) "$" 4) "[{\"vec\":[10.0, 20.0, 30.0, 40.0, 50.0, 60.0]}]"