Tetap teratur dengan koleksi
Simpan dan kategorikan konten berdasarkan preferensi Anda.
FT.CREATE membuat indeks yang dapat ditelusuri.
Sintaks
FT.CREATE index
ON HASH
[PREFIX count prefix [prefix ...]]
SCHEMA field_name [AS alias] VECTOR [HNSW|FLAT] attribute_count [attribute_name attribute_value]
[field_name [AS alias] NUMERIC]
[field_name [AS alias] TAG [SEPARATOR ...] [CASESENSITIVE]]
index (wajib): Ini adalah nama yang Anda berikan ke indeks. Jika indeks dengan nama yang sama sudah ada, error akan ditampilkan.
ON HASH (opsional): Ini menunjukkan jenis data HASH. Hanya jenis data HASH yang
didukung.
PREFIX [count] [prefix] (opsional): Ini menunjukkan kunci hash yang akan diindeks.
SCHEMA hash_field_name (wajib): hash_field_name setelah SCHEMA mengidentifikasi nama kolom
dalam hash. [AS alias] menetapkan nama alias sebagai alias untuk
atribut nama kolom.
Jenis kolom
VECTOR (wajib): Kolom vektor untuk penelusuran vektor:
[HNSW|FLAT] (wajib): Algoritma yang ditetapkan. FLAT (brute force) atau
HNSW (Hierarchical Navigable Small World).
attribute_count (wajib diisi): Total jumlah atribut nama dan nilai
yang diteruskan dalam konfigurasi algoritma.
attribute_name attribute_value: Pasangan nilai kunci yang menentukan
konfigurasi indeks, tetapi khusus untuk salah satu dari dua algoritma
yang tersedia.
Atribut algoritma HNSW yang diperlukan:
DIM (wajib): Jumlah dimensi vektor. Nilai yang diterima adalah 1-32768.
TYPE (wajib): Jenis vektor. Hanya FLOAT32 yang didukung.
DISTANCE_METRIC (wajib): Harus salah satu dari berikut ini - L2, IP, atau COSINE.
Atribut algoritma HNSW opsional:
EF_RUNTIME (opsional): Menetapkan jumlah vektor yang akan diperiksa selama operasi kueri. Defaultnya adalah 10, dan maksimumnya adalah 4096. Anda dapat menetapkan nilai parameter ini untuk setiap kueri yang dijalankan. Nilai yang lebih tinggi akan meningkatkan waktu kueri, tetapi meningkatkan perolehan kueri.
M (opsional): Jumlah maksimum tepi keluar yang diizinkan untuk setiap node dalam grafik di setiap lapisan. Jumlah maksimum tepi keluar adalah 2 M untuk lapisan 0. Defaultnya adalah 16. Maksimumnya adalah 512.
EF_CONSTRUCTION (opsional): Menetapkan jumlah vektor yang akan diperiksa selama pembuatan indeks. Defaultnya adalah 200, dan maksimumnya adalah 4096. Nilai yang lebih tinggi akan meningkatkan waktu yang diperlukan untuk membuat indeks, tetapi meningkatkan rasio recall.
INITIAL_CAP (opsional): Menentukan kapasitas vektor awal indeks. Defaultnya adalah 1024. Parameter ini menentukan alokasi memori indeks.
Atribut algoritma FLAT yang diperlukan:
DIM (wajib): Jumlah dimensi vektor.
TYPE (wajib): Jenis vektor. Hanya FLOAT32 yang didukung.
DISTANCE_METRIC (wajib): Harus salah satu dari berikut ini - L2, IP, atau COSINE.
Atribut algoritma FLAT opsional:
INITIAL_CAP (opsional): Menentukan kapasitas vektor awal indeks. Parameter ini menentukan alokasi memori indeks.
NUMERIC (opsional) - Kolom numerik untuk penelusuran numerik.
TAG (opsional) - Kolom tag untuk penelusuran berbasis TAG.
SEPARATOR (opsional): Karakter yang digunakan untuk membagi string tag menjadi tag individual. Opsi default-nya adalah ,. Nilai yang ditentukan harus berupa karakter tunggal. Misalnya, string tag "hello, world" akan ditafsirkan sebagai "hello" dan "world" dan akan diindeks sebagaimana mestinya. Nilai yang diizinkan adalah ,.<>{}[]"':;!@#$%^&*()-+=~
CASESENSITIVE (opsional): Menunjukkan kepekaan huruf besar/kecil kolom tag. Secara default, tag tidak peka huruf besar/kecil. String tag "HeLLo" akan diindeks sebagai "hello", dan kueri untuk "Hello" dan "HeLlo" akan menghasilkan hasil yang sama.
Catatan
Dalam perintah FT.CREATE, indeks VECTOR, NUMERIC, dan TAG dapat muncul dalam urutan apa pun.
Kolom hanya dapat diindeks sekali. Dalam contoh yang diberikan, kolom my_vector_field_key tidak dapat diulang dalam indeks yang sama.
Dalam satu perintah FT.CREATE, maksimum 10 kolom dapat diindeks.
Secara default, TAG tidak peka huruf besar/kecil.
Secara default, TAG dibatasi oleh ,.
Kueri individual pada tag dan kueri numerik tidak didukung. Kolom ini hanya dapat digunakan bersama dengan penelusuran berbasis vektor.
Contoh
Contoh HNSW:
FT.CREATE my_index_name SCHEMA my_hash_field_key VECTOR HNSW 10 TYPE FLOAT32 DIM 20 DISTANCE_METRIC COSINE M 4 EF_CONSTRUCTION 100
Contoh FLAT:
FT.CREATE my_index_name SCHEMA my_hash_field_key VECTOR Flat 8 TYPE FLOAT32 DIM 20 DISTANCE_METRIC COSINE INITIAL_CAP 15000
Contoh HNSW dengan kolom numerik:
FT.CREATE my_index_name SCHEMA my_vector_field_key VECTOR HNSW 10 TYPE FLOAT32 DIM 20 DISTANCE_METRIC COSINE M 4 EF_CONSTRUCTION 100 my_numeric_field_key NUMERIC
Contoh HNSW dengan kolom tag:
FT.CREATE my_index_name SCHEMA my_vector_field_key VECTOR HNSW 10 TYPE FLOAT32 DIM 20 DISTANCE_METRIC COSINE M 4 EF_CONSTRUCTION 100 my_tag_field_key TAG SEPARATOR '@' CASESENSITIVE
Contoh HNSW dengan tag dan kolom numerik:
FT.CREATE my_index_name SCHEMA my_vector_field_key VECTOR HNSW 10 TYPE FLOAT32 DIM 20 DISTANCE_METRIC COSINE M 4 EF_CONSTRUCTION 100 my_tag_field_key TAG SEPARATOR '@' CASESENSITIVE my_numeric_field_key NUMERIC
Contoh HNSW dengan beberapa kolom tag dan numerik:
FT.CREATE my_index_name SCHEMA my_vector_field_key VECTOR HNSW 10 TYPE FLOAT32 DIM 20 DISTANCE_METRIC COSINE M 4 EF_CONSTRUCTION 100 my_tag_field_key_1 TAG SEPARATOR '@' CASESENSITIVE my_numeric_field_key_1 NUMERIC my_numeric_field_key_2 NUMERIC my_tag_field_key_2 TAG
[[["Mudah dipahami","easyToUnderstand","thumb-up"],["Memecahkan masalah saya","solvedMyProblem","thumb-up"],["Lainnya","otherUp","thumb-up"]],[["Sulit dipahami","hardToUnderstand","thumb-down"],["Informasi atau kode contoh salah","incorrectInformationOrSampleCode","thumb-down"],["Informasi/contoh yang saya butuhkan tidak ada","missingTheInformationSamplesINeed","thumb-down"],["Masalah terjemahan","translationIssue","thumb-down"],["Lainnya","otherDown","thumb-down"]],["Terakhir diperbarui pada 2025-09-05 UTC."],[],[],null,["# FT.CREATE\n\n`FT.CREATE` creates a searchable index.\n\nSyntax\n------\n\n```\nFT.CREATE index\n ON HASH\n [PREFIX count prefix [prefix ...]]\n SCHEMA field_name [AS alias] VECTOR [HNSW|FLAT] attribute_count [attribute_name attribute_value]\n [field_name [AS alias] NUMERIC]\n [field_name [AS alias] TAG [SEPARATOR ...] [CASESENSITIVE]]\n```\n\n- `index` (required): This is the name you give to your index. If an index with the same\n name exists already, an error is returned.\n\n- `ON HASH` (optional): This indicates the HASH data type. Only the HASH data type is\n supported.\n\n- `PREFIX [count] [prefix]` (optional): This indicates which hash keys to index.\n\n- `SCHEMA hash_field_name` (required): The hash_field_name after SCHEMA identifies the field name\n in the hash. `[AS alias]` assigns the name `alias` as an alias for the\n field name attribute.\n\n### Field types\n\n- `VECTOR` (required): Vector field for vector search:\n\n - `[HNSW|FLAT]` (required): Designated algorithm. Either `FLAT` (brute force) or\n HNSW (Hierarchical Navigable Small World).\n\n - `attribute_count` (required): Total attribute count of names and values\n passed in the algorithm config.\n\n - `attribute_name attribute_value`: Key-value pairs that define\n the index configuration, but are specific to one of the two available\n algorithms.\n\n - Required HNSW algorithm attributes:\n\n - `DIM` (required): Vector dimensions count. Accepted values are `1`-`32768`.\n\n - `TYPE` (required): The vector type. Only `FLOAT32` is supported.\n\n - `DISTANCE_METRIC` (required): Must be one of the following - `L2`, `IP`, or `COSINE`.\n\n - Optional HNSW algorithm attributes:\n\n - `EF_RUNTIME` (optional): Sets the count of vectors to be examined during a query operation. The default is `10`, and the max is `4096`. You can set this parameter value for each query you run. Higher values increase query times, but improve query recall.\n\n - `M` (optional): The count of maximum permitted outgoing edges for each node in the graph in each layer. The maximum number of outgoing edges is 2M for layer 0. The Default is 16. The maximum is 512.\n\n - `EF_CONSTRUCTION` (optional): Sets count for vectors to be examined during index construction. The default is `200`, and the max is `4096`. Higher values increase the time needed to create indexes, but improve the recall ratio.\n\n - `INITIAL_CAP` (optional): Determines the starting vector capacity of the index. The default is `1024`. This parameter determines the index memory allocation.\n\n - Required FLAT algorithm attributes:\n\n - `DIM` (required): Vector dimensions count.\n\n - `TYPE` (required): The vector type. Only `FLOAT32` is supported.\n\n - `DISTANCE_METRIC` (required): Must be one of the following - `L2`, `IP`, or `COSINE`.\n\n - Optional FLAT algorithm attributes:\n\n - `INITIAL_CAP` (optional): Determines the starting vector capacity of the index. This parameter determines the index memory allocation.\n- `NUMERIC` (optional) - Numeric field for numeric search.\n\n- `TAG` (optional) - Tag field for TAG based search.\n\n - `SEPARATOR` (optional): A character utilized to divide the tag string into individual tags. The default option is `,`. The specified value must be a singular character. For example, the tag string \"hello, world\" will be interpreted as \"hello\" and \"world\" and will be indexed accordingly. Allowed values are `,.\u003c\u003e{}[]\"':;!@#$%^&*()-+=~`\n\n - `CASESENSITIVE` (optional): Denotes the case sensitivity of tag fields. By default, tags are not case-sensitive. A tag string \"HeLLo\" will be indexed as \"hello,\" and a query for \"Hello\" and \"HeLlo\" will yield the same result.\n\n### Notes\n\n- Within the FT.CREATE command, VECTOR, NUMERIC, and TAG indexes can appear in any sequence.\n\n- A field can only be indexed once. In the example provided, the field `my_vector_field_key` cannot be repeated within the same index.\n\n- In a single FT.CREATE command, a maximum of 10 fields can be indexed.\n\n- By default, TAGs are case insensitive.\n\n- By default, TAGs are delimited by `,`.\n\n- Individual queries on tag and numeric queries are not supported. These fields can only be utilized along with vector-based searches.\n\n### Examples\n\nHNSW example: \n\n```\nFT.CREATE my_index_name SCHEMA my_hash_field_key VECTOR HNSW 10 TYPE FLOAT32 DIM 20 DISTANCE_METRIC COSINE M 4 EF_CONSTRUCTION 100\n```\n\nFLAT example: \n\n```\nFT.CREATE my_index_name SCHEMA my_hash_field_key VECTOR Flat 8 TYPE FLOAT32 DIM 20 DISTANCE_METRIC COSINE INITIAL_CAP 15000\n```\n\nHNSW example with a numeric field: \n\n```\nFT.CREATE my_index_name SCHEMA my_vector_field_key VECTOR HNSW 10 TYPE FLOAT32 DIM 20 DISTANCE_METRIC COSINE M 4 EF_CONSTRUCTION 100 my_numeric_field_key NUMERIC\n```\n\nHNSW example with a tag field: \n\n```\nFT.CREATE my_index_name SCHEMA my_vector_field_key VECTOR HNSW 10 TYPE FLOAT32 DIM 20 DISTANCE_METRIC COSINE M 4 EF_CONSTRUCTION 100 my_tag_field_key TAG SEPARATOR '@' CASESENSITIVE \n```\n\nHNSW example with a tag and a numeric field: \n\n```\nFT.CREATE my_index_name SCHEMA my_vector_field_key VECTOR HNSW 10 TYPE FLOAT32 DIM 20 DISTANCE_METRIC COSINE M 4 EF_CONSTRUCTION 100 my_tag_field_key TAG SEPARATOR '@' CASESENSITIVE my_numeric_field_key NUMERIC\n```\n\nHNSW example with multiple tag and numeric fields: \n\n```\nFT.CREATE my_index_name SCHEMA my_vector_field_key VECTOR HNSW 10 TYPE FLOAT32 DIM 20 DISTANCE_METRIC COSINE M 4 EF_CONSTRUCTION 100 my_tag_field_key_1 TAG SEPARATOR '@' CASESENSITIVE my_numeric_field_key_1 NUMERIC my_numeric_field_key_2 NUMERIC my_tag_field_key_2 TAG\n```"]]