全部产品
Search
文档中心

Lindorm:CREATE INDEX

更新时间:Dec 25, 2025

Lindorm menyediakan dua jenis indeks yang efisien dan mudah digunakan: secondary indexes dan search indexes. Indeks-indeks ini cocok untuk berbagai skenario, seperti pencocokan non-primary key, kueri multidimensi, . Anda dapat menggunakan sintaks CREATE INDEX untuk menentukan tipe indeks dan menambahkan properti indeks.

Mesin dan versi

Sintaks CREATE INDEX hanya berlaku untuk LindormTable tanpa batasan versi.

Penting

Untuk membuat search index atau columnstore index menggunakan sintaks CREATE INDEX, Anda harus menggunakan Lindorm SQL V2.6.1 atau yang lebih baru. Untuk melihat versi Lindorm SQL, lihat panduan versi SQL.

Catatan penting

Pembuatan indeks untuk secondary indexes, columnstore indexes, dan search indexes memerlukan lookup data, yang menghasilkan operasi baca. Jika Anda telah mengaktifkan fitur Pemisahan data panas dan dingin pada instans Anda, pantau Pembatasan kecepatan pada penyimpanan dingin (penyimpanan cloud yang dioptimalkan). Operasi baca yang dibatasi pada penyimpanan dingin secara langsung memengaruhi efisiensi pembuatan indeks dan dapat menyebabkan tekanan balik pada operasi tulis.

Sintaks

create_index_statement   ::=  CREATE INDEX [IF NOT EXISTS] [ index_identifier ]
                              [ USING index_method_definition ]
                              ON table_identifier '(' index_key_expression ')'
                              [ INCLUDE include_expression]
                              [ PARTITION BY partition_definition ]
                              [ { ASYNC | SYNC} ]
                              [ WITH '(' index_options  ')' ]
index_method_definition  ::=  { KV | SEARCH | COLUMNAR }
index_key_expression     ::=  '('
                                  index_key_definition 
                                  |wildcard_string_literal                                 
                              ')'

index_key_definition     ::= {
                                  column_identifier [ DESC ]
                                  | column_identifier'(' column_options ')'
                                  | function_expression
                             }
                             [ (',' index_key_definition)* ]
column_options    ::=  '(' 
                           option_definition (',' option_definition )* 
                       ')'
function_expression      ::=  function_identifier 
                              '(' 
                                  column_identifer ( ',' column_identifer )* 
                              ')'
option_definition        ::=  option_identifer '=' string_literal
include_expression       ::=  '(' 
                                  column_identifier( ',' column_identifier )*
                              ')'
partition_definition     ::= {
                                {RANGE TIME} 
                                     '(' 
                                          column_identifer 
                                     ')' [ PARTITIONS number_literal ]
                                |
                                HASH '(' 
                                          column_identifer 
                                          ( ',' column_identifer )*
                                     ')' [ PARTITIONS number_literal ]
                                |
                                ENUMERABLE 
                                     '(' 
                                          column_identifer 
                                          ( ',' column_identifer )*
index_options            ::=  '(' 
                                  option_definition (',' option_definition )* 
                              ')'

Perbedaan

LindormTable mendukung dua jenis indeks yang dapat dibuat dengan pernyataan CREATE INDEX: secondary indexes dan search indexes.

Elemen sintaks yang didukung bervariasi tergantung pada tipe indeks. Tabel berikut menjelaskan perbedaannya.

Elemen sintaks

Secondary index

Search index

Tipe indeks (index_method_definition)

0

Ekspresi kunci indeks (index_key_expression)

0

Kolom yang disertakan (include_expression)

0

Partisi indeks (partition_definition)

0

Mode pembuatan indeks (ASYNC|SYNC)

Penting

Hanya LindormTable 2.6.3 dan yang lebih baru yang mendukung mode pembuatan SYNC.

0

0

Properti indeks (index_options)

0

0

Catatan penggunaan

Anda dapat membuat maksimal 3 secondary indexes, 1 search index, untuk setiap tabel lebar.

Tipe indeks (index_method_definition)

Saat membuat indeks, Anda dapat menggunakan kata kunci USING untuk menentukan tipe indeks. LindormTable mendukung tiga tipe indeks berikut:

Parameter

Tipe indeks

Deskripsi

KV

Secondary index

Jika Anda tidak secara eksplisit menentukan tipe indeks dalam pernyataan CREATE INDEX, secondary index akan dibuat secara default. Untuk informasi selengkapnya tentang secondary indexes, lihat Secondary indexes.

Penting

Sebuah instans dapat memiliki maksimal delapan tugas pembuatan secondary index secara bersamaan. Jika Anda mencoba membuat secondary index saat delapan tugas sedang berjalan, pernyataan tersebut akan gagal.

SEARCH

Search index

Indeks pencarian teks lengkap berbasis mesin pencari. Terutama digunakan untuk skenario kueri multidimensi kompleks, seperti tokenisasi, kueri fuzzy, agregasi dan analisis, serta pengurutan dengan paginasi. Untuk informasi selengkapnya, lihat Pengantar search indexes.

Search indexes mendukung semua tipe data dasar kecuali DATE, TIME, dan DECIMAL. Untuk informasi selengkapnya tentang tipe data, lihat Tipe data dasar.

Penting
  • Sebelum membuat search index, aktifkan fitur search index terlebih dahulu. Biaya dikenakan untuk node pencarian dan node Lindorm Tunnel Service (LTS). Untuk mengaktifkan fitur ini, lihat Aktifkan search indexes.

  • Kunci indeks dari search index harus berisi kolom non-primary key.

  • Instans Lindorm tidak memiliki batasan jumlah tugas pembuatan search index.

Ekspresi kunci indeks (index_key_expression)

Anda dapat menentukan satu atau beberapa kolom sebagai kunci indeks. Indeks dengan beberapa kunci indeks disebut indeks komposit.

Definisi kunci indeks (index_key_definition)

Jika tipe indeks adalah search index, Anda dapat menambahkan properti pada kunci indeks. Jika tipe indeks adalah secondary index, Anda dapat menentukan ekspresi fungsi sebagai kunci indeks.

Properti kunci indeks pencarian (option_definition)

Saat menambahkan kolom indeks menggunakan pernyataan ALTER INDEX, Anda juga dapat menentukan properti untuk kunci indeks. Misalnya, c3(type=text,analyzer=ik) membuat indeks pada kolom c3 dan menentukan bahwa pemisah kata ik digunakan untuk kolom ini.

Tabel berikut menjelaskan properti kunci indeks yang didukung oleh search indexes.

Properti kunci indeks

Tipe

Deskripsi

indexed

STRING

Menentukan apakah akan membuat indeks untuk kolom yang ditentukan dalam kunci indeks. Indeks terbalik dibuat untuk kolom bertipe string. Indeks numerik, seperti indeks BKD-Tree, dibuat untuk bidang bertipe numerik.

  • true: (Default) Ya.

  • false: Indeks tidak dibuat.

rowStored

STRING

Menentukan apakah akan menyimpan data mentah.

  • true: Menyimpan data mentah.

  • false: Nilai default. Data mentah tidak disimpan.

columnStored

STRING

Menentukan apakah akan menggunakan penyimpanan kolom untuk mempercepat pengurutan dan analisis.

  • true: Nilai default. Penyimpanan kolom digunakan.

  • false: Penyimpanan kolom tidak digunakan.

type

STRING

Untuk skenario tokenisasi, atur parameter type ke text untuk bidang yang ditokenisasi. Dalam kasus lain, tipe data sama dengan tipe data tabel lebar secara default.

Penting

Parameter type harus digunakan bersama parameter analyzer.

analyzer

STRING

Menentukan daftar pemisah kata. Nilai yang valid:

  • standard

  • english

  • ik

  • whitespace

  • comma

Penting

Parameter analyzer harus digunakan bersama parameter type.

mapping

STRING

Properti kunci indeks kustom, direpresentasikan sebagai objek JSON dalam string. Ini kompatibel dengan sintaks properti kunci indeks Elasticsearch.

Penting
  • Parameter mapping hanya berlaku untuk versi mesin pencari yang kompatibel dengan Elasticsearch.

  • Jika parameter mapping digunakan, semua parameter lain untuk kunci indeks ini menjadi tidak berlaku.

Ekspresi fungsi secondary index (function_expression)

  • Saat membuat secondary index, Anda dapat menentukan ekspresi fungsi sebagai kunci indeks. Lima ekspresi fungsi didukung: Z-ORDER, S2, CAST, MD5, dan SHA256.

    Penting

    Hanya LindormTable 2.6.7.5 dan yang lebih baru yang mendukung penggunaan ekspresi fungsi MD5 atau SHA256 sebagai kunci indeks. Jika Anda tidak dapat melakukan upgrade mesin LindormTable di Konsol, hubungi dukungan teknis Lindorm di DingTalk di s0s3eg3.

    • Fungsi Z-ORDER: Membuat secondary index spatio-temporal untuk satu atau beberapa kolom bertipe data spatio-temporal. Sintaksnya sebagai berikut:

      Z-ORDER '(' column_identifier ( ',' column_identifer )*  ')'

      Tipe data column_identifier harus merupakan tipe data spatio-temporal. Untuk informasi selengkapnya tentang indeks spatio-temporal, lihat Indeks spatio-temporal.

    • Fungsi CAST: Membuat indeks pada hasil konversi tipe data untuk suatu kolom. Sintaksnya sebagai berikut:

      CAST(column_identifier AS type)

      type adalah tipe data. Untuk informasi selengkapnya, lihat Tipe data dasar.

    • Fungsi S2: Membuat secondary index grid S2 untuk kolom bertipe data spatio-temporal. Sintaksnya sebagai berikut:

      S2 '(' column_identifier, level ')'

      Tipe data column_identifier harus POLYGON atau MULTIPOLYGON. Nilai level berkisar antara 1 hingga 30. Untuk informasi selengkapnya, lihat Fungsi indeks S2.

    • Fungsi MD5: Membuat indeks pada nilai terenkripsi MD5 dari kolom VARCHAR. Sintaksnya sebagai berikut:

      MD5(column_identifier)

      Untuk informasi selengkapnya tentang fungsi MD5, lihat Fungsi MD5.

    • Fungsi SHA256: Membuat indeks pada nilai terenkripsi SHA256 dari kolom VARCHAR. Sintaksnya sebagai berikut:

      SHA256(column_identifier)

      Untuk informasi selengkapnya tentang fungsi SHA256, lihat Fungsi SHA256.

Konstanta wildcard (wildcard_string_literal)

Hanya search indexes yang mendukung konstanta wildcard (*).

Konstanta wildcard (*) digunakan untuk membuat indeks pada semua kolom. Misalnya, CREATE INDEX IF NOT EXISTS idx5 USING SEARCH ON test(*).

Penting
  • Setelah pernyataan dieksekusi, kolom yang baru ditambahkan tidak secara otomatis ditambahkan ke search index atau columnstore index. Anda harus menambahkannya secara manual menggunakan pernyataan ALTER INDEX.

  • Kolom dinamis tidak termasuk dalam indeks. Untuk informasi selengkapnya, lihat Kolom dinamis.

Kolom yang disertakan (include_expression)

Kolom yang disertakan, juga dikenal sebagai indeks cakupan, adalah kolom dari tabel utama yang disertakan dalam tabel indeks. Fitur ini menghindari kebutuhan untuk melakukan lookup ke tabel utama setelah kueri mengenai indeks, sehingga meningkatkan performa kueri.

Catatan

Untuk secondary indexes, Anda dapat menggunakan kata kunci WITH untuk menambahkan properti tabel guna menyertakan kolom dinamis. Untuk informasi selengkapnya, lihat Secondary indexes.

Partisi indeks (partition_definition)

Hanya search indexes yang mendukung partisi indeks.

Partisi indeks adalah kebijakan manajemen indeks. Server secara otomatis membagi dan menyimpan data. Saat Anda melakukan kueri data, sistem secara otomatis melakukan Pemangkasan partisi.

Search indexes mendukung partisi RANGE dan partisi HASH. Untuk informasi selengkapnya, lihat Indeks terpartisi.

Mode pembuatan indeks (ASYNC|SYNC)

Saat menggunakan pernyataan CREATE INDEX untuk membuat indeks, Anda dapat menentukan mode pembuatan indeks menggunakan kata kunci ASYNC atau SYNC.

  • ASYNC: Membuat indeks secara asinkron. Setelah pernyataan CREATE INDEX dieksekusi, tugas pembuatan indeks dimulai, dan pernyataan langsung mengembalikan hasil, terlepas dari apakah indeks berhasil dibuat atau tidak.

  • SYNC: Membuat indeks secara sinkron. Setelah pernyataan CREATE INDEX dieksekusi, tugas pembuatan indeks segera dimulai. Pernyataan CREATE INDEX hanya mengembalikan hasil setelah tugas pembuatan indeks selesai.

Tabel berikut menjelaskan mode pembuatan yang didukung oleh dua tipe indeks.

Mode pembuatan indeks

Secondary index

Search index

ASYNC

Penting

Mulai dari LindormTable 2.6.1, mode pembuatan indeks default untuk pernyataan CREATE INDEX adalah asinkron.

0

0

SYNC

Penting

Hanya LindormTable 2.6.3 dan yang lebih baru yang mendukung pembuatan indeks sinkron.

0

Properti indeks (index_options)

Saat membuat indeks menggunakan pernyataan CREATE INDEX, Anda dapat menggunakan kata kunci WITH untuk menentukan properti indeks. Properti indeks berikut didukung.

Secondary index

Properti

Tipe

Deskripsi

COMPRESSION

STRING

Algoritma kompresi untuk tabel indeks. Algoritma yang didukung meliputi:

  • SNAPPY

  • ZSTD

  • LZ4

INDEX_COVERED_TYPE

STRING

Nilai berikut tersedia untuk metode redundansi indeks:

  • COVERED_ALL_COLUMNS_IN_SCHEMA: Menyertakan semua kolom non-primary key yang telah ditentukan dalam skema tabel.

  • COVERED_DYNAMIC_COLUMNS: Menyertakan semua kolom non-primary key yang telah ditentukan dan kolom dinamis dalam skema tabel.

    Catatan
    • Jika Anda menentukan INDEX_COVERED_TYPE, Anda tidak perlu menentukan klausa INCLUDE dalam pernyataan.

    • Sebelum menyertakan kolom dinamis, pastikan fitur kolom dinamis telah diaktifkan. Untuk informasi selengkapnya, lihat Kolom dinamis.

Anda juga dapat menggunakan kata kunci INCLUDE untuk menyertakan kolom tertentu.

STARTKEY

STRING

Kunci awal tabel indeks.

Penting

Anda tidak dapat mengatur kunci awal untuk kolom timestamp atau kolom bertipe data spasial.

ENDKEY

STRING

Kunci akhir tabel indeks.

Penting

Anda tidak dapat mengatur kunci akhir untuk kolom timestamp atau kolom bertipe data spasial.

NUMREGIONS

INTEGER

Jumlah pra-partisi untuk tabel indeks.

Penting

Anda tidak dapat mengatur jumlah pra-partisi untuk kolom timestamp atau kolom bertipe data spasial.

Search index

Properti

Tipe

Deskripsi

indexState

STRING

Status search index. Nilai yang valid:

  • ACTIVE: Indeks tersedia.

  • INACTIVE: Indeks tidak tersedia.

  • DISABLED: Indeks dinonaktifkan.

numShards

INTEGER

Menentukan jumlah shard. Nilai default adalah dua kali jumlah node pencarian.

Penting

Volume data untuk satu shard disarankan antara 30 juta hingga 100 juta baris. Ukuran penyimpanan disarankan antara 30 GB hingga 50 GB. Jika volume data shard sangat besar, performa baca-tulis search index dapat menurun. Selain itu, kapasitas data satu shard terbatas. Melebihi 2 miliar baris memengaruhi stabilitas sistem.

Oleh karena itu, rencanakan jumlah shard indeks sebelum membuat search index untuk produksi. Jika data Anda berisi bidang atribut waktu dan volumenya meningkat signifikan seiring waktu (seperti data pesanan atau log), kami sarankan untuk membuat indeks terpartisi berdasarkan waktu.

RANGE_TIME_PARTITION_START

INTEGER

Jumlah hari sebelum operasi pembuatan indeks untuk mulai membuat partisi. Ini berlaku untuk skenario dengan data historis. Jika timestamp data historis lebih awal dari waktu mulai partisi, terjadi error.

Catatan

Parameter ini wajib ditentukan saat membuat indeks terpartisi.

RANGE_TIME_PARTITION_INTERVAL

INTEGER

Interval dalam hari untuk membuat partisi baru. Misalnya, RANGE_TIME_PARTITION_INTERVAL='7' menunjukkan bahwa partisi baru dibuat setiap minggu.

Catatan

Parameter ini wajib ditentukan saat membuat indeks terpartisi.

RANGE_TIME_PARTITION_TTL

INTEGER

Jumlah hari untuk menyimpan data partisi. Misalnya, RANGE_TIME_PARTITION_TTL='180' menunjukkan bahwa data partisi dari enam bulan terakhir disimpan. Partisi historis secara otomatis dihapus. Jika parameter ini tidak ditentukan, data tidak pernah dihapus.

Catatan

Parameter ini wajib ditentukan saat membuat indeks terpartisi.

RANGE_TIME_PARTITION_MAX_OVERLAP

INTEGER

Jika data yang ditulis memiliki timestamp masa depan, parameter ini menentukan interval waktu maksimum yang diizinkan dari waktu saat ini, dalam hari. Jika tidak ditentukan, data dari satu hari di masa depan diizinkan secara default.

RANGE_TIME_PARTITION_FIELD_TIMEUNIT

LONG

Unit bidang partisi waktu yang ditentukan oleh bisnis. Unit default adalah milidetik (ms).

  • Jika unit bidang partisi diatur ke detik (s), angka harus terdiri dari 10 digit.

  • Jika unit bidang partisi diatur ke milidetik (ms), angka harus terdiri dari 13 digit.

RANGE_TIME_PARTITION_CHS

INTEGER

Batas pemisahan data panas dan dingin. Menentukan usia data yang akan dipindahkan ke penyimpanan dingin. Unit default adalah detik (s). Misalnya, RANGE_TIME_PARTITION_CHS='864000' menunjukkan bahwa data yang lebih tua dari 10 hari diarsipkan ke penyimpanan dingin.

Catatan

Jika parameter ini tidak diatur, pemisahan data panas dan dingin tidak diaktifkan. Data hanya disimpan di penyimpanan panas secara default.

INDEX_SETTINGS

STRING

Properti indeks kustom, direpresentasikan sebagai objek JSON dalam string. Ini kompatibel dengan sintaks pengaturan indeks Elasticsearch.

Penting

Parameter INDEX_SETTINGS hanya berlaku untuk versi yang kompatibel dengan Elasticsearch.

SOURCE_SETTINGS

STRING

Properti untuk kebijakan penyimpanan data mentah kolom search index. Ini adalah objek JSON dalam string dan kompatibel dengan sintaks pengaturan _source Elasticsearch. Secara default, search index tidak menyimpan data mentah kolom indeks. Parameter berikut didukung:

  • enabled: Nilainya bertipe Boolean. true menunjukkan bahwa data mentah semua kolom indeks disimpan. false menunjukkan bahwa data mentah semua kolom indeks tidak disimpan.

Penting

Parameter enabled tidak dapat digunakan bersama parameter includes atau excludes.

  • includes: Nilainya adalah array string. Menentukan daftar nama kolom indeks yang data mentahnya akan disimpan. Anda dapat menggunakan karakter wildcard * untuk mencocokkan beberapa kolom.

  • excludes: Nilainya adalah array string. Menentukan daftar nama kolom indeks yang data mentahnya tidak akan disimpan. Anda dapat menggunakan karakter wildcard * untuk mencocokkan beberapa kolom.

Catatan

Konfigurasikan parameter SOURCE_SETTINGS hanya jika Anda perlu melakukan kueri data melalui antarmuka pengguna visualisasi mesin pencari. Anda tidak perlu mengonfigurasi parameter ini untuk kasus penggunaan biasa.

Contoh

Asumsikan tabel utama `test` dibuat menggunakan pernyataan berikut:

CREATE TABLE test (
  p1 VARCHAR NOT NULL,
  p2 INTEGER NOT NULL,
  c1 BIGINT,
  c2 DOUBLE,
  c3 VARCHAR,
  c4 TIMESTAMP,
  c5 GEOMETRY(POINT),
  PRIMARY KEY(p1, p2)
) WITH (CONSISTENCY = 'strong', MUTABILITY='MUTABLE_LATEST');

Secondary index

Membuat indeks secara asinkron

Jika Anda tidak menentukan mode pembuatan, indeks dibuat secara asinkron secara default.

CREATE INDEX idx1 ON test(c1 desc) include(c3,c4) WITH (COMPRESSION='ZSTD');

Verifikasi Hasil

Jalankan SHOW INDEX FROM test untuk memeriksa apakah indeks telah dibuat.

Membuat indeks komposit

Buat indeks komposit pada kolom c1, c2, dan c3 secara sinkron.

CREATE INDEX idx1 ON test(c1, c2, c3) include(c4) SYNC WITH ( COMPRESSION ='ZSTD');

Verifikasi hasil

Jalankan SHOW INDEX FROM test untuk memeriksa apakah indeks telah dibuat.

Membuat secondary index spatio-temporal

Contoh berikut menunjukkan cara membuat secondary index spatio-temporal. Untuk informasi selengkapnya, lihat Indeks spatio-temporal.

CREATE INDEX idx ON roads (Z-ORDER(g1));
CREATE INDEX idt ON roads (Z-ORDER(g1,t));

Menyertakan semua kolom

CREATE INDEX idx1 ON test(c4 desc) WITH (INDEX_COVERED_TYPE ='COVERED_ALL_COLUMNS_IN_SCHEMA');

Verifikasi hasil

Jalankan SHOW INDEX FROM test untuk memeriksa apakah indeks telah dibuat.

Menyertakan semua kolom dinamis

CREATE INDEX idx1 ON test(c4 desc) WITH (INDEX_COVERED_TYPE='COVERED_DYNAMIC_COLUMNS');

Verifikasi hasil

Jalankan SHOW INDEX FROM test untuk memeriksa apakah indeks telah dibuat.

Mengatur jumlah pra-partisi untuk tabel indeks

Atur jumlah pra-partisi untuk tabel indeks menjadi 32.

CREATE INDEX idx1 ON test(c4 desc) include(c5,c6)  WITH (NUMREGIONS ='32');

Verifikasi hasil

Jalankan SHOW INDEX FROM test untuk memeriksa apakah indeks telah dibuat.

Menentukan kunci awal dan akhir untuk tabel indeks

Saat membuat secondary index, Anda dapat menentukan kunci awal dan akhir serta jumlah pra-partisi untuk tabel indeks. Ini membagi tabel indeks menjadi 32 pra-partisi antara 11111111 dan 9999999.

CREATE INDEX idx1 ON test(c3 desc) include(c5,c6) WITH (NUMREGIONS ='32', STARTKEY ='11111111', ENDKEY = '9999999');

Verifikasi hasil

Jalankan SHOW INDEX FROM test untuk memeriksa apakah indeks telah dibuat.

Buat secondary index Z-ORDER

Buat secondary index Z-ORDER untuk kolom bertipe data polygon c5.

CREATE INDEX idx1 ON test(Z-ORDER(c5));

Verifikasi hasil

Jalankan SHOW INDEX FROM test untuk memeriksa apakah indeks telah dibuat.

Membuat indeks sekunder grid

  1. Buat secondary index grid untuk kolom bertipe polygon c5. Saat ini, hanya mode pembuatan asinkron yang didukung.

    CREATE INDEX idx1 ON test(S2(c5, 10));
  2. Bangun secondary index grid.

    BUILD INDEX s2_idx ON test;

Verifikasi hasil

Jalankan SHOW INDEX FROM test untuk memeriksa apakah indeks telah dibuat.

Mengonversi tipe data kolom tertentu

Konversi tipe data kolom c3 ke INTEGER lalu buat secondary index.

CREATE INDEX idx1 ON test(CAST(c3 AS INTEGER));

Verifikasi hasil

Jalankan SHOW INDEX FROM test untuk memeriksa apakah indeks telah dibuat.

Search index

Membuat indeks secara asinkron

CREATE INDEX IF NOT EXISTS idx2 USING SEARCH ON test(p1, p2, c1, c2, c3);

Verifikasi hasil

Jalankan SHOW INDEX FROM test untuk memeriksa apakah indeks telah dibuat.

Catatan

Anda juga dapat melihat progres pembuatan indeks di Konsol Lindorm. Untuk informasi selengkapnya, lihat Lihat progres build penuh search index.

Buat indeks untuk semua kolom

Buat search index untuk semua kolom. Jika tidak ada properti kolom spesifik yang ditentukan, nilai default akan digunakan.

CREATE INDEX IF NOT EXISTS idx2 USING SEARCH ON test('*');

Verifikasi hasil

Jalankan SHOW INDEX FROM test untuk memeriksa apakah indeks telah dibuat.

Catatan

Anda juga dapat melihat progres pembuatan indeks di Konsol Lindorm. Untuk informasi selengkapnya, lihat Lihat progres build penuh search index.

Tambahkan properti kunci indeks

  • Tambahkan properti kunci indeks non-kustom

    Buat search index untuk semua kolom. Jika indeks mencakup kolom c3, atur propertinya menjadi type=text, analyzer=ik, dan indexed=true.

    CREATE INDEX IF NOT EXISTS idx2 USING SEARCH ON test('*',c3(type=text,analyzer=ik,indexed=true));

    Verifikasi hasil

    Jalankan SHOW INDEX FROM test untuk memeriksa apakah indeks telah dibuat.

    Catatan

    Anda juga dapat melihat progres pembuatan indeks di Konsol Lindorm. Untuk informasi selengkapnya, lihat Lihat progres build penuh search index.

  • Tambahkan properti kunci indeks kustom

    Asumsikan skema tabel sebagai berikut:

    CREATE TABLE test (
      p1 VARCHAR NOT NULL,
      p2 INTEGER NOT NULL,
      c1 BIGINT,
      c2 DOUBLE,
      c3 VARCHAR,
      c4 TIMESTAMP,
      PRIMARY KEY(p1, p2)
    ) WITH (CONSISTENCY = 'strong', MUTABILITY='MUTABLE_LATEST');

    Buat search index untuk semua kolom, dengan kolom indeks c3 ditentukan sebagai tipe text dan pemisah kata ik_max_word.

    CREATE INDEX IF NOT EXISTS idx2 USING SEARCH ON test('*',c3(mapping='{
      "type": "text",
      "analyzer": "ik_max_word"
    }'));
    Penting
    • Parameter mapping hanya berlaku untuk versi yang kompatibel dengan Elasticsearch.

    • Jika parameter mapping digunakan, semua parameter lain untuk kunci indeks ini menjadi tidak berlaku.

    Verifikasi hasil

    Jalankan SHOW INDEX FROM test untuk memeriksa apakah indeks telah dibuat.

    Catatan

    Anda juga dapat melihat progres pembuatan indeks di Konsol Lindorm. Untuk informasi selengkapnya, lihat Lihat progres build penuh search index.

Atur status indeks

Tentukan kolom dan beberapa properti kolom, serta atur status search index menjadi ACTIVE.

CREATE INDEX IF NOT EXISTS idx2 USING SEARCH ON test(c1, c3(type=text,analyzer=ik)) WITH (indexState=ACTIVE,numShards=4);

Verifikasi hasil

Jalankan SHOW INDEX FROM test untuk memeriksa apakah indeks telah dibuat.

Catatan

Anda juga dapat melihat progres pembuatan indeks di Konsol Lindorm. Untuk informasi selengkapnya, lihat Lihat progres build penuh search index.

Atur properti indeks kustom

Buat search index, atur status search index menjadi ACTIVE, dan gunakan pengaturan kustom untuk menentukan metode kompresi indeks sebagai ZSTD dan interval refresh 10 detik.

CREATE INDEX IF NOT EXISTS idx2 USING SEARCH ON test(c1, c3(type=text,analyzer=ik)) WITH (indexState=ACTIVE,INDEX_SETTINGS='{
  "index": {
    "codec": "zstd",
    "refresh_interval": "10s"
   }
}');

Verifikasi hasil

Jalankan SHOW INDEX FROM test untuk memeriksa apakah indeks telah dibuat.

Catatan

Anda juga dapat melihat progres pembuatan indeks di Konsol Lindorm. Untuk informasi selengkapnya, lihat Lihat progres build penuh search index.

Atur partisi berdasarkan waktu

Buat partisi berdasarkan kolom waktu c4, mulai dari 30 hari yang lalu, dengan partisi otomatis setiap 7 hari. Secara default, data partisi selama 90 hari disimpan.

CREATE INDEX IF NOT EXISTS idx2 USING SEARCH ON test (c1, c2, c3, c4)
PARTITION BY RANGE TIME(c4) PARTITIONS 16
WITH (indexState=ACTIVE, RANGE_TIME_PARTITION_START='30', RANGE_TIME_PARTITION_INTERVAL='7', RANGE_TIME_PARTITION_TTL='90', RANGE_TIME_PARTITION_MAX_OVERLAP='90');

Verifikasi

Jalankan SHOW INDEX FROM test untuk memeriksa apakah indeks telah dibuat.

Catatan

Anda juga dapat melihat progres pembuatan indeks di Konsol Lindorm. Untuk informasi selengkapnya, lihat Lihat progres build penuh search index.

Atur penyimpanan data mentah

Search indexes hanya digunakan untuk penyaringan data dan secara default tidak menyimpan data mentah kolom indeks. Untuk mengakses mesin pencari secara langsung saat menggunakan search index, Anda dapat mengatur indeks agar menyimpan semua atau sebagian data mentah kolom indeks.

  • Atur penyimpanan data mentah semua kolom indeks

    Buat search index yang mencakup kolom c1, c2, c3, dan c4, serta simpan data mentah kolom c1, c2, c3, dan c4.

    CREATE INDEX idx2 USING SEARCH ON test(c1, c2, c3, c4) WITH (SOURCE_SETTINGS='
    {
      "enabled": true
    }  
    ');

    Verifikasi hasil

    Jalankan SHOW INDEX FROM test untuk memeriksa apakah indeks telah dibuat.

    Catatan

    Anda juga dapat melihat progres pembuatan indeks di Konsol Lindorm. Untuk informasi selengkapnya, lihat Lihat progres build penuh search index.

  • Atur penyimpanan data mentah sebagian kolom indeks

    Buat search index yang mencakup kolom c1, c2, c3, dan c4, serta simpan data mentah kolom c2, c3, dan c4.

    CREATE INDEX idx2 USING SEARCH ON test(c1, c2, c3, c4) WITH (SOURCE_SETTINGS='
    {
      "includes": ["c*"],
      "excludes": ["c1"]
    }  
    ');

    Verifikasi hasil

    Jalankan SHOW INDEX FROM test untuk memeriksa apakah indeks telah dibuat.

    Catatan

    Anda juga dapat melihat progres pembuatan indeks di Konsol Lindorm. Untuk informasi selengkapnya, lihat Lihat progres build penuh search index.