全部产品
Search
文档中心

Lindorm:SearchIndex

更新时间:Jun 24, 2025

Indeks dapat digunakan untuk mempercepat kueri basis data. Mesin tabel lebar Lindorm (LindormTable) mendukung tipe indeks baru yang disebut indeks pencarian selain indeks sekunder asli berperforma tinggi. Indeks pencarian digunakan dalam skenario kueri multi-dimensi kompleks, termasuk segmentasi kata, kueri fuzzy, analisis agregat, serta pengurutan dan penomoran halaman. Topik ini menjelaskan fitur dan skenario penggunaan indeks pencarian.

Pengenalan

Indeks pencarian merupakan fitur dari LindormTable. Metode penggunaannya serupa dengan indeks sekunder asli berperforma tinggi. Anda juga dapat menggunakan pernyataan SQL untuk membuat indeks pencarian pada tabel lebar Lindorm. Dalam contoh berikut, indeks pencarian bernama idx dibuat untuk kolom c1, c2, dan c3 dari tabel dt. Urutan kolom c1, c2, dan c3 dalam pernyataan tidak memengaruhi fungsi indeks pencarian yang dibuat. Analisis IK digunakan untuk melakukan segmentasi kata pada data di kolom c3.

CREATE INDEX idx USING SEARCH ON dt(c1, c2, c3(type=text, analyzer=ik));

Indeks pencarian dapat digunakan untuk memenuhi persyaratan berikut:

  • Kueri dengan kondisi multi-dimensi: Anda dapat menentukan kombinasi acak dari kolom c1, c2, dan c3 dalam kueri, sehingga hasil kueri dapat dikembalikan dengan cepat.

    SELECT * FROM dt WHERE c1=?;
    SELECT * FROM dt WHERE c2=? AND c3=?;
  • Kueri berdasarkan segmentasi kata: Pada contoh ini, analisis IK dikonfigurasikan untuk kolom c3 guna melakukan segmentasi kata. Oleh karena itu, Anda dapat mengkueri data terkait hasil segmentasi kata dari kondisi yang ditentukan untuk kolom c3. Sebagai contoh, Anda dapat mengeksekusi pernyataan berikut untuk mengkueri catatan data yang berisi string 'Lindorm', 'Table', atau 'LindormTable' di kolom c3:

    SELECT * FROM dt WHERE c3='LindormTable';
  • Kueri yang menggunakan fungsi agregat: Indeks pencarian mendukung fungsi agregat seperti COUNT, SUM, MIN, MAX, dan AVG.

  • Pengurutan dan penomoran halaman: Anda dapat menggunakan pernyataan ORDER BY untuk mengurutkan nilai dalam kolom kunci indeks.

Arsitektur

Indeks pencarian adalah jenis indeks baru yang disediakan melalui integrasi LindormTable dan mesin pencarian Lindorm (LindormSearch). Gambar berikut menunjukkan aliran data antara LindormTable dan LindormSearch. Dalam arsitektur ini, LindormTable, Layanan Terowongan Lindorm (LTS), dan LindormSearch bertindak sebagai layanan independen yang dapat dikelola secara terpisah. Jika kapasitas pemrosesan LindormSearch tidak memenuhi kebutuhan bisnis Anda, Anda hanya perlu meningkatkan kapasitas LindormSearch. Demikian pula, jika kemampuan sinkronisasi LTS tidak mencukupi, Anda dapat menambah kapasitas LTS secara terpisah. LindormTable, LTS, dan LindormSearch diimplementasikan secara independen di server. Anda dapat memilih server dengan spesifikasi berbeda untuk LindormTable, LTS, dan LindormSearch sesuai dengan kebutuhan skenario tertentu, sehingga stabilitas sistem dapat ditingkatkan.

Data ditulis melalui proses berikut:

  1. Data ditulis ke LindormTable. Data mentah dicatat dalam file write-ahead logging (WAL) tabel lebar, dan hasil penulisan dikembalikan ke klien.

  2. LTS mendengarkan file WAL tabel lebar secara real-time, menyaring data yang terkait dengan indeks pencarian tabel lebar dari file WAL tersebut, lalu menulis data yang telah disaring ke LindormSearch.

  3. LindormSearch membangun indeks terbalik secara real-time setelah menerima data.

Data dikueri melalui proses berikut:

  1. Permintaan kueri dikirim ke LindormTable. Lapisan komputasi secara otomatis mengkompilasi permintaan kueri dan memilih indeks pencarian yang sesuai berdasarkan pengoptimal.

  2. Permintaan kueri dialihkan ke LindormSearch untuk mengambil data yang sesuai dengan kondisi.

  3. Data dari LindormSearch dirangkum. Jika diperlukan, data dalam tabel lebar akan dikueri ulang untuk melengkapi hasil kueri. Hasil akhir kemudian dikembalikan ke klien.

Skenario

Setelah LindormTable diintegrasikan dengan LindormSearch, kueri key-value dapat dilakukan dengan konkurensi tinggi dan latensi rendah. Berbagai fitur tambahan juga tersedia, seperti kueri multi-dimensi, kueri berdasarkan segmentasi kata, dan analisis agregat. Jika bisnis Anda memiliki persyaratan berikut, kami sarankan Anda menggunakan indeks pencarian.

  • Transformasi Arsitektur

    Jika arsitektur saat ini menggunakan Apache HBase, MySQL, atau MongoDB bersama dengan Elasticsearch atau Apache Solr, Anda dapat mengganti arsitektur gabungan tersebut dengan solusi indeks pencarian terpadu.

  • Pilihan Bisnis