Halaman ini menjelaskan fitur untuk penelusuran dan indeks sekunder.
Saat memutuskan antara indeks penelusuran dan indeks sekunder, perlu diingat bahwa indeks penelusuran harus menjadi pilihan default untuk kasus penggunaan teks lengkap dan indeks sekunder harus menjadi opsi default untuk hal lainnya. Tabel berikut menjelaskan kapan harus menggunakan setiap jenis indeks.
Fitur | Indeks sekunder | Indeks penelusuran |
---|---|---|
Tata urutan | Indeks diurutkan berdasarkan semua kolom kunci indeks | Indeks penelusuran hanya dapat diurutkan menurut maksimum dua kolom INT64 yang dikontrol pengguna |
Array | Array tidak didukung sebagai kunci indeks sekunder. | Indeks penelusuran mendukung pengindeksan array. Semua token dokumen ditempatkan bersama dalam bagian yang sama. Akibatnya, transaksi yang mengubah 1 baris hanya menulis ke satu bagian indeks. |
Lookup | Pencarian menurut kunci indeks hanya perlu mengakses satu bagian | Kueri yang menggunakan indeks penelusuran umumnya perlu membaca dari semua bagian partisi tertentu. Satu-satunya pengecualian adalah pencocokan pola top-k. |
Pengindeksan multi-kolom | Indeks sekunder dapat menyertakan beberapa kolom kunci. Kueri perlu mencari data berdasarkan awalan kolom kunci indeks untuk eksekusi yang efisien. | Indeks penelusuran dapat mengindeks beberapa kolom. Kueri dapat menentukan ekspresi logika yang kompleks (konjungsi, disjungsi, negasi) pada subset kolom yang diindeks, dan tetap dieksekusi secara efisien |
Irisan indeks | Pengguna dapat menulis ulang kueri untuk menggabungkan beberapa indeks sekunder. | Persimpangan beberapa kolom yang diindeks diterapkan sebagai join zig-zag lokal yang efisien, diikuti dengan penggabungan penggabungan terdistribusi (yang menggabungkan hasil dari semua bagian yang relevan). |
Membaca data | API Baca atau Kueri SQL | Kueri SQL |
Selain semantik, sintaksis pernyataan DDL untuk membuat indeks penelusuran berbeda dengan sintaksis DDL untuk membuat indeks sekunder:
- Kolom yang diindeks ditentukan secara terpisah dari urutan pengurutan dalam indeks penelusuran.
- Urutan kolom
TOKENLIST
dalam klausaON
dari pernyataanCREATE SEARCH INDEX
tidak penting.
Langkah selanjutnya
- Pelajari indeks penelusuran.
- Pelajari indeks sekunder.