

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Perintah pencarian vektor
<a name="vector-search-commands"></a>

Berikut ini adalah daftar perintah yang didukung untuk pencarian vektor. 

**Topics**
+ [FT.CREATE](vector-search-commands-ft.create.md)
+ [FT.SEARCH](vector-search-commands-ft.search.md)
+ [FT.AGREGAT](vector-search-commands-ft.aggregate.md)
+ [FT.DROPINDEX](vector-search-commands-ft.dropindex.md)
+ [FT.INFO](vector-search-commands-ft.info.md)
+ [KAKI. \$1DAFTAR](vector-search-commands-ft.list.md)
+ [FT.ALIASADD](vector-search-commands-ft.aliasadd.md)
+ [FT.ALIASDEL](vector-search-commands-ft.aliasdel.md)
+ [FT.ALIASUPDATE](vector-search-commands-ft.aliasupdate.md)
+ [KAKI. \$1ALIASLIST](vector-search-commands-ft.aliaslist.md)
+ [FT.PROFIL](vector-search-commands-ft.profile.md)
+ [FT.JELASKAN](vector-search-commands-ft.explain.md)
+ [FT.EXPLAINCLI](vector-search-commands-ft.explain-cli.md)

# FT.CREATE
<a name="vector-search-commands-ft.create"></a>

 Membuat indeks dan memulai pengurukan indeks itu. Untuk informasi selengkapnya, lihat [Ikhtisar pencarian vektor](https://docs.aws.amazon.com/memorydb/latest/devguide/vector-search-overview.html) 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 kunci JSON, pengenal bidang adalah jalur JSON.

  Untuk informasi selengkapnya, lihat [Jenis bidang indeks](vector-search-overview.md#vector-search-index-field-types).
+ Jenis bidang:
  + TAG: Untuk informasi selengkapnya, lihat [Tag](https://redis.io/docs/interact/search-and-query/advanced-concepts/tags/).
  + NUMERIK: 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}`— key/value pasangan khusus algoritme yang menentukan konfigurasi indeks. 

      Untuk algoritma FLAT, atributnya adalah:

      Diperlukan:
      + DIM — Jumlah dimensi dalam vektor.
      + DISTANCE\$1METRIC — Bisa menjadi salah satu [L2 \$1 IP \$1 COSINE].
      + JENIS - Jenis vektor. Satu-satunya jenis yang didukung adalah`FLOAT32`.

      Opsional:
      + INITIAL\$1CAP — Kapasitas vektor awal dalam indeks yang mempengaruhi ukuran alokasi memori indeks.

      Untuk algoritma HNSW, atributnya adalah:

      Diperlukan:
      + JENIS - Jenis vektor. Satu-satunya jenis yang didukung adalah`FLOAT32`.
      + DIM — Dimensi vektor, ditentukan sebagai bilangan bulat positif. Maksimal: 32768
      + DISTANCE\$1METRIC — Bisa menjadi salah satu [L2 \$1 IP \$1 COSINE].

      Opsional:
      + INITIAL\$1CAP — 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\$1CONSTRUCTION — 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\$1RUNTIME — 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](https://valkey.io/topics/cli/), seperti de-quoting dan de-escaping data, sebelum mengirimnya ke Valkey atau Redis OSS. Untuk menggunakan klien bahasa pemrograman lainnya (Python, Ruby, C \$1, dll.), Ikuti aturan penanganan lingkungan tersebut untuk menangani string dan data biner. Untuk informasi selengkapnya tentang klien yang didukung, lihat [Alat untuk Dibangun AWS](https://aws.amazon.com/developer/tools/)

**Example 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 indeks JSON 6 dimensi menggunakan algoritma HNSW:  

```
FT.CREATE json_idx1 ON JSON PREFIX 1 json: SCHEMA $.vec AS VEC VECTOR HNSW 6 DIM 6 TYPE FLOAT32 DISTANCE_METRIC L2
OK
```

**Example 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 \$1, 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-hal berikut:  
+ Kunci data hash dan JSON memiliki awalan definisi indeksnya.
+ Vektor berada pada jalur yang sesuai dari definisi indeks.
+ Vektor hash dimasukkan sebagai data hex sedangkan data JSON 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.

**Example 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 indeks JSON baru menggunakan `FLAT` algoritma bukan `HNSW` algoritma. Perhatikan juga bahwa itu akan mengindeks ulang data JSON 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]}]"
```

# FT.SEARCH
<a name="vector-search-commands-ft.search"></a>

Menggunakan ekspresi kueri yang disediakan untuk menemukan kunci dalam indeks. Setelah ditemukan, and/or isi hitungan bidang yang diindeks dalam kunci tersebut dapat dikembalikan. Untuk informasi selengkapnya, lihat [Ekspresi kueri penelusuran vektor](https://docs.aws.amazon.com/memorydb/latest/devguide/vector-search-overview.html#vector-search-query-expression).

Untuk membuat data untuk digunakan dalam contoh ini, lihat perintah [FT.CREATE](https://docs.aws.amazon.com/memorydb/latest/devguide/vector-search-commands-ft.create.html).

**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: Klausa 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 adalah “LIMIT 0 10", yaitu, hanya maksimal 10 kunci yang akan dikembalikan. 
+ PARAMS: Dua kali jumlah pasangan nilai kunci. key/value Pasangan param dapat direferensikan dari dalam ekspresi kueri. Untuk informasi selengkapnya, lihat [Ekspresi kueri penelusuran vektor](https://docs.aws.amazon.com/memorydb/latest/devguide/vector-search-overview.html#vector-search-query-expression).
+ COUNT: Klausa ini menekan pengembalian isi kunci, hanya jumlah kunci yang dikembalikan. Ini adalah alias untuk “LIMIT 0 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](https://valkey.io/topics/cli/), seperti de-quoting dan de-escaping data, sebelum mengirimnya ke Valkey atau Redis OSS. Untuk menggunakan klien bahasa pemrograman lainnya (Python, Ruby, C \$1, dll.), Ikuti aturan penanganan lingkungan tersebut untuk menangani string dan data biner. Untuk informasi selengkapnya tentang klien yang didukung, lihat [Alat untuk Dibangun AWS](https://aws.amazon.com/developer/tools/)

**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).

**Pencarian JSON**

```
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 vektor JSON 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]}]"
```

# FT.AGREGAT
<a name="vector-search-commands-ft.aggregate"></a>

Sebuah superset dari perintah FT.SEARCH, memungkinkan pemrosesan tambahan substansif dari kunci yang dipilih oleh ekspresi kueri.

**Sintaksis**

```
FT.AGGREGATE index query
  [LOAD * | [count field [field ...]]]
  [TIMEOUT timeout]
  [PARAMS count name value [name value ...]]
  [FILTER expression]
  [LIMIT offset num]  
  [GROUPBY count property [property ...] [REDUCE function count arg [arg ...] [AS name] [REDUCE function count arg [arg ...] [AS name] ...]] ...]] 
  [SORTBY count [ property ASC | DESC [property ASC | DESC ...]] [MAX num]] 
  [APPLY expression AS name]
```
+ Klausa FILTER, LIMIT, GROUPBY, SORTBY, dan APPLY dapat diulang beberapa kali dalam urutan apa pun dan dicampur secara bebas. Mereka diterapkan dalam urutan yang ditentukan dengan output dari satu klausa yang memberi masukan dari klausa berikutnya.
+ Dalam sintaks di atas, “properti” adalah bidang yang dideklarasikan dalam perintah [FT.CREATE](https://docs.aws.amazon.com/memorydb/latest/devguide/vector-search-commands-ft.create.html) untuk indeks ini ATAU output dari klausa APPLY sebelumnya atau fungsi REDUCE.
+ Klausa LOAD dibatasi untuk memuat bidang yang telah dideklarasikan dalam indeks. “LOAD\$1” akan memuat semua bidang yang dideklarasikan dalam indeks. 
+ Fungsi peredam berikut didukung: COUNT, COUNT\$1DISTINCTISH, SUM, MIN, MAX, AVG, STDDEV, QUANTILE, TOLIST, FIRST\$1VALUE, dan RANDOM\$1SAMPLE. Untuk informasi selengkapnya, lihat [Agregasi](https://redis.io/docs/interact/search-and-query/search/aggregations/)
+ BATAS <offset><count>: Mempertahankan catatan mulai <offset>dan berlanjut hingga<count>, semua catatan lainnya dibuang.
+ PARAMS: Dua kali jumlah pasangan nilai kunci. key/value Pasangan param dapat direferensikan dari dalam ekspresi kueri.

**Nilai yang ditampilkan**

Mengembalikan array atau balasan kesalahan.
+ Jika operasi selesai dengan sukses, ia mengembalikan array. Elemen pertama adalah bilangan bulat tanpa arti tertentu (harus diabaikan). Elemen yang tersisa adalah hasil output pada tahap terakhir. Setiap elemen adalah array nama bidang dan pasangan nilai.
+ Jika indeks sedang dalam proses diisi kembali, perintah segera mengembalikan balasan kesalahan.
+ Jika batas waktu tercapai, perintah mengembalikan balasan kesalahan.

# FT.DROPINDEX
<a name="vector-search-commands-ft.dropindex"></a>

Jatuhkan indeks. Definisi indeks dan konten terkait dihapus. Kunci tidak terpengaruh.

**Sintaksis**

```
FT.DROPINDEX <index-name>
```

**Nilai yang ditampilkan**

Mengembalikan string pesan OK sederhana atau balasan kesalahan.

# FT.INFO
<a name="vector-search-commands-ft.info"></a>

**Sintaksis**

```
FT.INFO <index-name>
```

Output dari halaman FT.INFO adalah array pasangan nilai kunci seperti yang dijelaskan dalam tabel berikut:


| Key | Tipe nilai | Deskripsi | 
| --- | --- | --- | 
| index\$1name | string | Nama indeks | 
| creation\$1timestamp | integer | Stempel waktu pembuatan bergaya Unix | 
| key\$1type | string | HASH atau JSON | 
| key\$1prefixes | array string | Awalan kunci untuk indeks ini | 
| ladang | array informasi lapangan | Bidang indeks ini | 
| space\$1usage | integer | Byte memori yang digunakan oleh indeks ini | 
| fullext\$1space\$1usage | integer | Byte memori yang digunakan oleh bidang non-vektor | 
| vector\$1space\$1usage | integer | Byte memori yang digunakan oleh bidang vektor | 
| num\$1docs | integer | Jumlah kunci yang saat ini terdapat dalam indeks | 
| num\$1indexed\$1vectors | integer | Jumlah vektor yang saat ini terdapat dalam indeks | 
| current\$1lag | integer | Penundaan konsumsi terbaru (MilliSeconds) | 
| backfill\$1status | string | Salah satu dari: Selesai, InProgres, Dijeda atau Gagal  | 

Tabel berikut menjelaskan informasi untuk setiap bidang:


| Key | Tipe nilai | Deskripsi | 
| --- | --- | --- | 
| pengenal | string | nama bidang | 
| field\$1name | string | Nama anggota hash atau JSON Path | 
| jenis | string | salah satu dari: Numerik, Tag, Teks atau Vektor | 
| pilihan | string | abaikan | 

Jika bidangnya bertipe Vector, informasi tambahan akan hadir tergantung pada algoritma. 

Untuk algoritma HNSW:


| Key | Tipe nilai | Deskripsi | 
| --- | --- | --- | 
| algoritma | string | HNSW | 
| data\$1type | string | FLOAT32 | 
| distance\$1metric | string | salah satu dari: L2, IP atau Cosine | 
| initial\$1capacity | integer | Ukuran awal indeks bidang vektor | 
| kapasitas saat ini | integer | Ukuran indeks bidang vektor saat ini | 
| maximum\$1edges | integer | Parameter M saat pembuatan | 
| ef\$1konstruksi | integer | Parameter EF\$1CONSTRUCTION saat pembuatan | 
| ef\$1runtime | integer | Parameter EF\$1RUNTIME saat pembuatan | 

Untuk algoritma FLAT:


| Key | Tipe nilai | Deskripsi | 
| --- | --- | --- | 
| algoritma | string | DATAR | 
| data\$1type | string | FLOAT32 | 
| distance\$1metric | string | salah satu dari: L2, IP atau Cosine | 
| initial\$1capacity | integer | Ukuran awal indeks bidang vektor | 
| kapasitas saat ini | integer | Ukuran indeks bidang vektor saat ini | 

# KAKI. \$1DAFTAR
<a name="vector-search-commands-ft.list"></a>

Daftar semua indeks.

**Sintaksis**

```
FT._LIST 
```

**Nilai yang ditampilkan**

Mengembalikan array nama indeks

# FT.ALIASADD
<a name="vector-search-commands-ft.aliasadd"></a>

Tambahkan alias untuk indeks. Nama alias baru dapat digunakan di mana saja yang diperlukan nama indeks.

**Sintaksis**

```
FT.ALIASADD <alias> <index-name> 
```

**Nilai yang ditampilkan**

Mengembalikan string pesan OK sederhana atau balasan kesalahan.

# FT.ALIASDEL
<a name="vector-search-commands-ft.aliasdel"></a>

Hapus alias yang ada untuk indeks.

**Sintaksis**

```
FT.ALIASDEL <alias>
```

**Nilai yang ditampilkan**

Mengembalikan string pesan OK sederhana atau balasan kesalahan.

# FT.ALIASUPDATE
<a name="vector-search-commands-ft.aliasupdate"></a>

Perbarui alias yang ada untuk menunjuk ke indeks fisik yang berbeda. Perintah ini hanya mempengaruhi referensi future ke alias. Operasi yang sedang berlangsung (FT.SEARCH, FT.AGGREGATE) tidak terpengaruh oleh perintah ini.

**Sintaksis**

```
FT.ALIASUPDATE <alias> <index>
```

**Nilai yang ditampilkan**

Mengembalikan string pesan OK sederhana atau balasan kesalahan.

# KAKI. \$1ALIASLIST
<a name="vector-search-commands-ft.aliaslist"></a>

Daftar alias indeks.

**Sintaksis**

```
FT._ALIASLIST
```

**Nilai yang ditampilkan**

Mengembalikan array ukuran jumlah alias saat ini. Setiap elemen dari array adalah pasangan alias-index.

# FT.PROFIL
<a name="vector-search-commands-ft.profile"></a>

Jalankan kueri dan kembalikan informasi profil tentang kueri itu.

**Sintaksis**

```
FT.PROFILE 

<index>
SEARCH | AGGREGATE 
[LIMITED]
QUERY <query ....>
```

**Nilai yang ditampilkan**

Sebuah array dua elemen. Elemen pertama adalah hasil dari `FT.AGGREGATE` perintah `FT.SEARCH` atau yang diprofilkan. Elemen kedua adalah array informasi kinerja dan profil.

# FT.JELASKAN
<a name="vector-search-commands-ft.explain"></a>

Mengurai kueri dan mengembalikan informasi tentang bagaimana kueri itu diurai.

**Sintaksis**

```
FT.EXPLAIN <index> <query>
```

**Nilai yang ditampilkan**

String yang berisi hasil yang diuraikan.

# FT.EXPLAINCLI
<a name="vector-search-commands-ft.explain-cli"></a>

Sama seperti perintah FT.EXPLY kecuali bahwa hasilnya ditampilkan dalam format berbeda yang lebih berguna dengan redis-cli.

**Sintaksis**

```
FT.EXPLAINCLI <index> <query>
```

**Nilai yang ditampilkan**

String yang berisi hasil yang diuraikan.