All Products
Search
Document Center

Tablestore:Indeks pencarian

Last Updated:Jun 05, 2026

Buat dan kelola indeks pencarian menggunakan Tablestore CLI untuk mengkueri data berdasarkan kolom non-primary key serta menggabungkan beberapa kondisi.

Prasyarat

  • Tablestore CLI dengan kredensial akses yang telah dikonfigurasi. Untuk informasi selengkapnya, lihat Tablestore CLI.

  • Tabel data. Untuk informasi selengkapnya, lihat Operasi tabel data.

Buat indeks pencarian

create_search_index -n <indexName>

Parameter

Wajib

Deskripsi

-i, --input

Tidak

Jalur ke file JSON yang mendefinisikan skema indeks pencarian. Jika tidak ditentukan, CLI menggunakan input interaktif.

-n, --name

Ya

Nama indeks pencarian.

-t, --table

Tidak

Nama tabel data. Tidak diperlukan jika tabel data sudah dipilih dengan perintah use.

--ttl

Tidak

Waktu hidup (TTL) data, yang menentukan berapa lama data disimpan. Satuan: detik. Nilai default: -1 (data tidak pernah kedaluwarsa). Nilai minimum: 86400 (satu hari). Data yang melebihi TTL akan dihapus secara otomatis.

Penting

Untuk menggunakan fitur Manajemen siklus hidup indeks pencarian, nonaktifkan operasi UpdateRow untuk tabel data. TTL indeks pencarian dan TTL tabel data bersifat independen. TTL indeks pencarian harus kurang dari atau sama dengan TTL tabel data.

Saat diminta, masukkan skema indeks dalam format JSON atau gunakan parameter -i untuk menentukan file skema. Skema tersebut mencakup pengaturan berikut:

Parameter

Wajib

Deskripsi

IndexSetting

Tidak

Pengaturan indeks, termasuk RoutingFields.

RoutingFields (opsional): Bidang routing kustom. Pilih kolom kunci primer sebagai bidang routing. Data dengan nilai bidang routing yang sama didistribusikan ke partisi yang sama selama pembacaan dan penulisan, yang meningkatkan kinerja kueri. Biasanya, atur hanya satu bidang routing. Jika Anda mengatur beberapa bidang routing, Tablestore menggabungkan nilai-nilainya menjadi satu.

FieldSchemas

Ya

Daftar objek FieldSchema. Setiap FieldSchema berisi bidang-bidang berikut:

  • FieldName (wajib): Nama bidang untuk indeks pencarian (nama kolom). Tipe: String. Bidang dalam indeks pencarian dapat berupa kolom kunci primer atau kolom atribut.

  • FieldType (wajib): Tipe data bidang.

  • IsArray (opsional): Menentukan apakah bidang merupakan array. Tipe: Boolean. Jika diatur ke true, kolom tersebut adalah array, dan data harus ditulis dalam format array JSON, seperti ["a","b","c"]. Karena Nested merupakan tipe array, Anda tidak perlu mengatur parameter ini ketika FieldType adalah Nested.

  • Index (opsional): Menentukan apakah pengindeksan diaktifkan. Tipe: Boolean. Nilai default: true, yang membangun indeks terbalik atau indeks spasial untuk kolom tersebut. Jika diatur ke false, tidak ada indeks yang dibangun untuk kolom tersebut.

  • Analyzer (opsional): Jenis Tokenisasi. Atur parameter ini ketika tipe bidang adalah Text. Jika tidak diatur, default-nya adalah tokenisasi karakter tunggal.

  • AnalyzerParameter: Parameter untuk alat analisis SingleWord, termasuk CaseSensitive (apakah pencocokan peka huruf besar/kecil; default: false) dan DelimitWord (apakah memisahkan kata alfabet dan angka; default: false).

  • EnableSortAndAgg (opsional): Menentukan apakah pengurutan dan agregasi diaktifkan. Tipe: Boolean. Hanya bidang dengan EnableSortAndAgg diatur ke true yang dapat digunakan untuk pengurutan.

    Penting

    Bidang Nested tidak mendukung pengurutan dan agregasi. Namun, sub-kolom dalam bidang Nested mendukung pengurutan dan agregasi.

  • Store (opsional): Menentukan apakah nilai bidang disimpan dalam indeks pencarian. Tipe: Boolean. Saat diaktifkan, nilai bidang dapat dibaca langsung dari indeks pencarian tanpa mengkueri tabel data, yang mengoptimalkan kinerja kueri.

  • IsVirtualField (opsional): Menentukan apakah kolom merupakan kolom virtual. Tipe: Boolean. Nilai default: false. Jika diatur ke true, SourceFieldNames wajib diisi.

  • SourceFieldNames (opsional): Nama bidang dalam tabel data. Tipe: String. Wajib diisi ketika IsVirtualField diatur ke true.

IndexSort

Tidak

Pengaturan pra-pengurutan indeks. Default: diurutkan berdasarkan kunci primer.

Penting

Indeks yang berisi bidang Nested tidak mendukung IndexSort dan tidak dapat diurutkan sebelumnya.

Sorters (opsional): Metode pra-pengurutan. Mendukung pengurutan berdasarkan kunci primer (PrimaryKeySort) dan berdasarkan nilai bidang (FieldSort). Untuk informasi lebih lanjut, lihat Pengurutan dan paging.

  • Name: Metode pengurutan. PrimaryKeySort mengurutkan berdasarkan kunci primer. FieldSort mengurutkan berdasarkan nilai bidang. Hanya bidang terindeks dengan pengurutan dan agregasi yang diaktifkan yang dapat diurutkan sebelumnya.

  • Sorter: Berisi FieldName (nama bidang untuk pengurutan, wajib untuk pengurutan berdasarkan nilai bidang) dan Order (urutan pengurutan: ASC untuk menaik atau DESC untuk menurun; default: ASC).

Contoh

Buat indeks pencarian bernama search_index.

create_search_index -n search_index

Masukkan skema indeks saat diminta. Contoh:

{
    "IndexSetting": {
        "RoutingFields": null
    },
    "FieldSchemas": [
        {
            "FieldName": "gid",
            "FieldType": "LONG",
            "Index": true,
            "EnableSortAndAgg": true,
            "Store": true,
            "IsArray": false,
            "IsVirtualField": false
        },
        {
            "FieldName": "col3",
            "FieldType": "TEXT",
            "Index": true,
            "Analyzer": "single_word",
            "AnalyzerParameter": {
                "CaseSensitive": true,
                "DelimitWord": null
            },
            "EnableSortAndAgg": false,
            "Store": true,
            "IsArray": false,
            "IsVirtualField": false
        }
    ],
    "IndexSort": {
        "Sorters": [
            {
                "Name": "PrimaryKeySort",
                "Sorter": {
                    "Order": "ASC"
                }
            }
        ]
    }
}

Buat indeks pencarian dari file:

create_search_index -n search_index -i /tmp/indexschema.json

Daftar indeks pencarian

list_search_index

Parameter

Wajib

Deskripsi

-a, --all

Tidak

Daftar indeks pencarian untuk semua tabel data.

-d, --detail

Tidak

Tampilkan informasi detail tentang indeks pencarian.

-t, --table

Tidak

Nama tabel data. Tidak diperlukan jika tabel data sudah dipilih dengan perintah use.

Contoh

Tampilkan daftar indeks pencarian untuk tabel data saat ini beserta detailnya.

list_search_index -d

Lihat detail indeks pencarian

describe_search_index -n <indexName>

Parameter

Wajib

Deskripsi

-n, --name

Ya

Nama indeks pencarian.

-o, --output

Tidak

Simpan output ke file lokal JSON atau TXT.

-t, --table

Tidak

Nama tabel data. Tidak diperlukan jika tabel data sudah dipilih dengan perintah use.

Contoh

Lihat detail indeks search_index.

describe_search_index -n search_index

Bidang Index schema dalam output berisi skema indeks pencarian. TimeToLive menunjukkan TTL indeks pencarian.

Kueri data dengan indeks pencarian

Tablestore CLI mendukung jenis kueri indeks pencarian berikut: Kueri Term, Kueri Terms, Kueri match all, Kueri Match, Kueri Match phrase, Kueri Prefix, Kueri Range, Kueri wildcard, Kueri wildcard berbasis token, Kueri Boolean, Kueri Geo, dan Kueri Exists. Pilih jenis kueri yang sesuai dengan kasus penggunaan Anda.

search -n <indexName> --return_all_indexed

Saat diminta, masukkan kondisi kueri dalam format JSON. Kondisi kueri mencakup pengaturan berikut:

Parameter

Wajib

Deskripsi

Offset

Tidak

Posisi awal untuk mengembalikan hasil.

Limit

Tidak

Jumlah maksimum baris yang dikembalikan. Untuk hanya mendapatkan jumlah baris tanpa mengembalikan data, atur Limit ke 0.

Collapse

Tidak

Konfigurasi collapse. Gunakan parameter ini untuk Collapse (menghapus duplikat) set hasil berdasarkan kolom tertentu. FieldName menentukan nama kolom. Hanya kolom integer, floating-point, dan Keyword yang didukung.

Sort

Tidak

Urutan pengurutan hasil. Untuk informasi lebih lanjut, lihat Definisikan saat kueri. Jika tidak diatur, hasil dikembalikan sesuai urutan pra-pengurutan. Jika tidak ada urutan pra-pengurutan yang ditentukan, hasil dikembalikan sesuai urutan kunci primer.

GetTotalCount

Tidak

Menentukan apakah jumlah total baris yang cocok dikembalikan. Nilai default: false. Mengaktifkan opsi ini dapat meningkatkan latensi kueri.

Token

Tidak

Token paginasi untuk membaca sisa hasil. Ketika respons tidak berisi semua baris yang cocok, server mengembalikan Token. Kirim Token ini dalam permintaan berikutnya untuk melanjutkan pembacaan. Atur Token ke null untuk permintaan pertama.

Query

Ya

Jenis kueri. Jenis yang didukung: MatchAllQuery, MatchQuery, MatchPhraseQuery, TermQuery, TermsQuery, PrefixQuery, RangeQuery, WildcardQuery, ExistsQuery, NestedQuery, KnnVectorQuery, dan BoolQuery.

Aggregations

Tidak

Konfigurasi Agregasi. Mendukung operasi nilai minimum, nilai maksimum, jumlah, rata-rata, hitungan, dan hitungan unik.

  • Name: Jenis agregasi, seperti min, max, sum, avg, atau count.

  • Aggregation: Konfigurasi parameter agregasi, termasuk AggName (nama agregasi kustom), Field (bidang yang diagregasi), dan MissingValue (nilai default saat bidang kosong).

Contoh

Kueri data dalam tabel saat ini menggunakan search_index dan kembalikan semua kolom terindeks.

search -n search_index --return_all_indexed

Masukkan kondisi kueri saat diminta. Contoh berikut mengkueri baris di mana uid sama dengan 10001 dan menghitung rata-rata kolom pid:

{
    "Offset": -1,
    "Limit": 10,
    "Collapse": null,
    "Sort": null,
    "GetTotalCount": true,
    "Token": null,
    "Query": {
        "Name": "TermQuery",
        "Query": {
            "FieldName": "uid",
            "Term": 10001
        }
    },
    "Aggregations": [{
        "Name": "avg",
        "Aggregation": {
            "AggName": "agg1",
            "Field": "pid"
        }
    }]
}

Hapus indeks pencarian

drop_search_index -n <indexName> -y

Parameter

Wajib

Deskripsi

-n, --name

Ya

Nama indeks pencarian.

-t, --table

Tidak

Nama tabel data. Tidak diperlukan jika tabel data sudah dipilih dengan perintah use.

-y, --yes

Ya

Konfirmasi penghapusan. Parameter ini wajib dalam perintah.

Contoh

Hapus indeks search_index.

drop_search_index -n search_index -y