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 |
|
--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:
|
|
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.
|
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 |
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 |
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
|
Parameter |
Wajib |
Deskripsi |
|
-c, --column |
Tidak |
Kolom yang akan dikembalikan. Pisahkan beberapa nama kolom dengan koma (,). |
|
-n, --name |
Ya |
Nama indeks pencarian. |
|
-f, --print_format |
Tidak |
Format output. Nilai default: table. |
|
--return_all |
Tidak |
Kembalikan semua kolom. |
|
--return_all_indexed |
Tidak |
Kembalikan semua kolom terindeks dalam indeks pencarian. |
|
-t, --table |
Tidak |
Nama tabel data. Tidak diperlukan jika tabel data sudah dipilih dengan perintah |
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.
|
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 |
|
-y, --yes |
Ya |
Konfirmasi penghapusan. Parameter ini wajib dalam perintah. |
Contoh
Hapus indeks search_index.
drop_search_index -n search_index -y