Apache Lucene

Tujuan dari penyimpanan indeks adalah untuk mengoptimalkan kinerja dan kecepatan dalam mencari dokumen yang relevan untuk permintaan pencarian. Tanpa indeks, mesin pencari akan mencari dokumen di setiap storage, sehingga memerlukan waktu yang lama dan daya komputasi yang besar. Kebanyakan mesin pencari menggunakan B-Tree untuk menyimpan indeks, mereka relatif stabil sehubungan dengan penyisipan data (operasi lookups dan insertions-nya O(log n)). Lucene mengambil pendekatan yang sedikit berbeda yaitu membangun beberapa indeks segmen dan menggabungkannya secara berkala daripada mempertahankan satu indeks. Lucene menggunakan Inverted Index untuk melakukan penyimpanan index. Struktur data Inverted Index merupakan komponen pusat yang khas pada algoritma indexing mesin pencari.

Untuk setiap dokumen baru yang akan diindeks, Lucene membuat indeks segmen baru, tetapi dengan cepat menggabungkan segmen kecil dengan segmen yang lebih besar sehingga mempertahankan jumlah total segmen kecil agar pencarian tetap cepat. Untuk mengoptimalkan indeks dalam pencarian cepat, Lucene dapat menggabungkan semua segmen menjadi satu, yang berguna untuk indeks yang jarang diperbaharui. Untuk mencegah konflik (atau penguncian overhead) antara indeks reader dan indeks writer, Lucene memodifikasi segmen tidak pada tempatnya, hanya membuat baru. Ketika menggabungkan segmen, Lucene menulis segmen  yang baru dan menghapus segmen yang lama setelah setiap reader yang aktif ditutup. Pendekatan ini menjadi pertimbangan yang baik, Lucene menawarkan derajat fleksibilitas yang tinggi dalam kecepatan pengindeksan untuk proses pencarian, dan memiliki karakteristik I/O untuk merging dan searching.

Segmen indeks dari Lucene terdiri dari beberapa file, yaitu:

  • sebuah kamus indeks yang berisi satu entri untuk setiap 100 masukan dalam kamus
  • sebuah kamus berisi satu entri untuk tiap kata
  • sebuah file posting yang mengandung entri untuk setiap posting

Selama segmen Lucene tidak pernah diupdate, mereka dapat disimpan dalam file flat yang tidak serumit B-Tree. Untuk kecepatan retrieval, kamus indeks yang berisi offsets ke dalam file kamus, dan kamus memegang offsets ke dalam file posting. Lucene juga mengimplementasikan berbagai cara untuk memampatkan file kamus dan file posting sehingga mengurangi I/O disk tanpa mengakibatkan overhead CPU yang besar.

~ oleh Thomas pada Maret 25, 2010.

Satu Tanggapan to “Apache Lucene”

  1. wah bagus nih…..ga perlu lagi terjemahin buku he he he. copy paste aja deh.Thanks anyway.

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

 
%d blogger menyukai ini: