Halaman ini menjelaskan fitur untuk indeks penelusuran dan sekunder.
Saat memutuskan antara indeks penelusuran dan indeks sekunder, perlu diingat bahwa indeks pencarian seharusnya menjadi pilihan {i>default<i} untuk kasus penggunaan teks lengkap dan indeks sekunder harus menjadi pilihan {i> default<i} untuk semua hal lainnya. Tujuan 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 berdasarkan maksimal dua kolom INT64 yang dikontrol pengguna |
Array | Array tidak didukung sebagai kunci indeks sekunder. | Indeks penelusuran mendukung pengindeksan array. Semua token dokumen ditempatkan di bagian yang sama. Akibatnya, transaksi yang mengubah 1 baris hanya menulis ke satu bagian indeks. |
Pencarian | Pencarian berdasarkan kunci indeks hanya perlu mengakses satu bagian | Kueri yang menggunakan indeks penelusuran umumnya harus membaca dari semua bagian partisi tertentu. Satu-satunya pengecualian adalah pencocokan pola top-k. |
Pengindeksan multi-kolom | Indeks sekunder dapat mencakup beberapa kolom kunci. Kueri perlu mencari data berdasarkan awalan kolom kunci indeks agar eksekusinya efisien. | Indeks penelusuran dapat mengindeks beberapa kolom. Kueri dapat menentukan ekspresi logika yang kompleks (konjungsi, disjungsi, negasi) di subset kolom yang diindeks, dan masih dijalankan secara efisien |
Persimpangan indeks | Pengguna dapat menulis ulang kueri mereka untuk menggabungkan beberapa indeks sekunder. | Perpotongan dari beberapa kolom terindeks diterapkan sebagai gabungan zig-zag lokal yang efisien, diikuti oleh gabungan penggabungan terdistribusi (yang menggabungkan hasil dari semua bagian yang relevan). |
Membaca data | SQL Query atau Read API | Kueri SQL |
Selain semantik, sintaks pernyataan DDL untuk membuat indeks pencarian adalah berbeda dari sintaks DDL untuk membuat indeks sekunder:
- Kolom yang diindeks ditentukan secara terpisah dari tata urutan indeks penelusuran.
- Urutan kolom
TOKENLIST
dalam klausaON
pernyataanCREATE SEARCH INDEX
tidak penting.
Langkah selanjutnya
- Pelajari indeks penelusuran.
- Pelajari indeks sekunder.