Berbagi teknologi

[Elasticsearch] Penjelasan mendetail tentang indeks terbalik Elasticsearch

2024-07-08

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

📑引言

Elasticsearch adalah mesin pencari terdistribusi berdasarkan Lucene, yang banyak digunakan di berbagai bidang seperti pencarian teks lengkap, analisis log, dan analisis data waktu nyata. Keunggulan intinya terletak pada kinerja pencariannya yang kuat, dan salah satu fondasi kinerja ini adalah indeks terbalik. Artikel ini akan memperkenalkan indeks terbalik di Elasticsearch secara mendetail untuk membantu pembaca memahami secara mendalam prinsip, struktur, dan penerapannya.

gambar.png

1. Pengenalan indeks terbalik

Indeks terbalik adalah struktur data inti dari mesin pencari teks lengkap. Fungsi utamanya adalah mengekstrak kata kunci dari dokumen dan membangun hubungan pemetaan antara kata kunci dan dokumen. Struktur ini merupakan kebalikan dari indeks maju tradisional (yaitu pemetaan dokumen ke kata kunci), sehingga disebut indeks terbalik.
Dalam indeks terbalik, setiap kata kunci dikaitkan dengan daftar dokumen yang berisi kata kunci tersebut, yang memungkinkan operasi pencarian dengan cepat menemukan dokumen yang berisi kata kunci tertentu, sehingga sangat meningkatkan efisiensi kueri.

2. Struktur dasar indeks terbalik

Struktur dasar indeks terbalik mencakup bagian-bagian berikut:

  1. Kamus: Berisi semua kata kunci yang muncul di kumpulan dokumen.
  2. Daftar Terbalik: Untuk setiap kata kunci, catat daftar ID dokumen yang berisi kata kunci dan informasi lokasinya di dalam dokumen.

Berikan contoh sederhana:
Katakanlah kita memiliki tiga dokumen berikut:

  • Dokumen 1:"Elasticsearch is a powerful search engine"
  • Dokumen 2:"Elasticsearch uses inverted index"
  • Dokumen 3:"Search engines use indexes"

Langkah-langkah membangun indeks terbalik adalah sebagai berikut:

  1. Tokenisasi: Membagi dokumen menjadi kata-kata dan melakukan standarisasi (seperti mengubah menjadi huruf kecil, menghapus kata-kata berhenti, dll.).
  2. Bangun kamus: Ekstrak kata-kata unik dari semua dokumen.
  3. Buat daftar terbalik: catat di mana setiap kata muncul di setiap dokumen.

Hasilnya adalah sebagai berikut: