Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
KAKI. SEARCH
Menggunakan ekspresi kueri yang disediakan untuk menemukan kunci dalam indeks. Setelah ditemukan, hitungan dan/atau konten bidang yang diindeks dalam kunci tersebut dapat dikembalikan. Untuk informasi selengkapnya, lihat Ekspresi kueri penelusuran vektor.
Untuk membuat data untuk digunakan dalam contoh ini, lihat FT. CREATEperintah.
Sintaksis
FT.SEARCH <index-name> <query> [RETURN <token_count> (<field-identifier> [AS <alias>])+] [TIMEOUT timeout] [PARAMS <count> <name> <value> [<name> <value>]] [LIMIT <offset> <count>] [COUNT]
RETURN: Klausul ini mengidentifikasi bidang kunci mana yang dikembalikan. Klausa AS opsional pada setiap bidang mengesampingkan nama bidang dalam hasil. Hanya bidang yang telah dideklarasikan untuk indeks ini yang dapat ditentukan.
LIMIT: <offset><count>: Klausa ini memberikan kemampuan pagination karena hanya kunci yang memenuhi nilai offset dan count yang dikembalikan. Jika klausa ini dihilangkan, defaultnya menjadi "LIMIT0 10", yaitu, hanya maksimal 10 kunci yang akan dikembalikan.
PARAMS: Dua kali jumlah pasangan nilai kunci. Pasangan kunci/nilai Param dapat direferensikan dari dalam ekspresi kueri. Untuk informasi selengkapnya, lihat Ekspresi kueri penelusuran vektor.
COUNT: Klausa ini menekan pengembalian isi kunci, hanya jumlah kunci yang dikembalikan. Ini adalah alias untuk "LIMIT0 0".
Nilai yang ditampilkan
Mengembalikan array atau balasan kesalahan.
Jika operasi selesai dengan sukses, ia mengembalikan array. Elemen pertama adalah jumlah total kunci yang cocok dengan query. Elemen yang tersisa adalah pasangan nama kunci dan daftar bidang. Daftar bidang adalah array lain yang terdiri dari pasangan nama bidang dan nilai.
Jika indeks sedang dalam proses diisi kembali, perintah segera mengembalikan balasan kesalahan.
Jika batas waktu tercapai, perintah mengembalikan balasan kesalahan.
Contoh: Lakukan beberapa pencarian
catatan
Contoh berikut menggunakan argumen asli valkey-cli
Pencarian hash
FT.SEARCH hash_idx1 "*=>[KNN 2 @VEC $query_vec]" PARAMS 2 query_vec "\x00\x00\x00\x00\x00\x00\x00\x00" DIALECT 2 1) (integer) 2 2) "hash:0" 3) 1) "__VEC_score" 2) "0" 3) "vec" 4) "\x00\x00\x00\x00\x00\x00\x00\x00" 4) "hash:1" 5) 1) "__VEC_score" 2) "1" 3) "vec" 4) "\x00\x00\x00\x00\x00\x00\x80\xbf"
Ini menghasilkan dua hasil, diurutkan berdasarkan skornya, yaitu jarak dari vektor kueri (dimasukkan sebagai hex).
JSONpencarian
FT.SEARCH json_idx1 "*=>[KNN 2 @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) 2 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]}]"
Ini menghasilkan dua hasil terdekat, diurutkan berdasarkan skornya, dan perhatikan bahwa nilai JSON vektor dikonversi menjadi float dan vektor kueri masih merupakan data vektor. Perhatikan juga bahwa karena KNN
parameternya 2, hanya ada dua hasil. Nilai yang lebih besar akan mengembalikan lebih banyak hasil:
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]}]"