RANGKUMAN BAB 4 Sistem Temu Balik Informasi
Yusuf Syaifudin [email protected]
11/313303/PA/13672
BAB 4 Kontsruksi Indeks
Bab ini akan menjelaskan bagaimana membanguan sebuah konstruksi dalam melakukan indeks
(membangun indeks atau indexing).
4. 1 Hardware Basics Ketika membangun sebuah sistem pencarian informasi (IR), banyak keputusan didasarkan pada
karakteristik perangkat keras komputer di mana sistem berjalan. Oleh karena itu bab ini dimulai
dengan tinjauan singkat tentang perangkat keras komputer. Daftar dasar-dasar hardware yang
dibutuhkan dalam buku ini untuk memotivasi desain sistem temu balik informasi ialah sebagai berikut:
Akses ke data dalam memori jauh lebih cepat daripada akses ke data pada disk. Dibutuhkan
beberapa clock cycle (mungkin 5 10-9 detik) untuk mengakses byte dalam memori, tetapi
lebih lama untuk mentransfer dari disk (sekitar 2 10 detik). Konsekuensinya, kita ingin
menyimpan data kedalam disk sebanyak yang mungkin dilakukan.
Ketika melakukan pembacaan atau penulisan data pada sebuah disk, dibutuhkan waktu untuk
kepala disk untuk pindah ke bagian dari disk dimana data berada. Ini disebut seek time dan
rata-rata 5 ms untuk beberapa disk. Tidak ada data yang ditransfer selama melakukan
pencarian. Untuk memaksimalkan kecepatan transfer data, potongan data yang akan dibaca
bersama harus disimpan secara berdampingan pada disk.
Sistem operasi umumnya membaca dan menulis seluruh blok. Dengan demikian, membaca
satu byte dari disk dapat mengambil waktu sebanyak membaca seluruh blok.
Transfer data dari disk ke memori ditangani oleh systembus, bukan oleh prosesor. Ini berarti
bahwa prosesor tersedia untuk memproses data selama disk I/O. Kita dapat memanfaatkan
fakta ini untuk mempercepat transfer data dengan menyimpan data terkompresi pada disk.
Dengan asumsi algoritma dekompresi yang efisien, total waktu membaca dan kemudian
dekompresi data terkompresi biasanya kurang dari membaca data terkompresi.
Server yang digunakan dalam sistem temu balik informasi biasanya memiliki beberapa
gigabyte (GB) dari memori utama, kadang-kadang puluhan GB. Ruang disk yang tersedia
adalah beberapa kali lipat lebih besar.
4.2 Blocked sort-based indexing
Disini, kumpulan dari koleksi teks akan dibagi kedalam bentuk blok-blok yang lebih kecil. Setiap blok
dapat diletakkan didalam memori utama. Dalam memori utama tersebut, akan terdapat pasangan
antara TermID dengan DocID. Hal ini akan menghasilkan data yang terurut sebagian. Kemudian
lakukan penggabungan pada hasil dari data yang terurut sebagian tersebut kedalam hasil akhir:
BSBINDEXCONSTRUCTION()
1 n 0
2 while (all documents have not been processed)
3 do n n +1
4 block PARSENEXTBLOCK()
5 BSBI-INVERT(block)
6 WRITEBLOCKTODISK(block, fn)
7 MERGEBLOCKS( f1, . . . , fn; f merged)
Contoh:
Penggabungan dalam blocked sort-based indexing. Dua blok ("daftar posting yang akan digabung")
diambil dari disk ke memori, bergabung dalam memori ("daftar postingan digabung") dan ditulis
kembali ke disk.
4.3 Single-pass in-memory indexing Untuk setiap koleksi teks yang sangat besar, daftar blok mungkin tidak dapat disimpan dalam memori
utama. Single-pass in-memory indexing memiliki ide untuk membuat sebuah daftar dari setiap blok
menggunakan fungsi hash.
SPIMI-Invert(token stream)
1 output le NEWFILE()
2 dictionary NEWHASH()
3 while (free memory available)
4 do token next(token stream)
5 if term(token) / dictionary 6 then postings list
ADDTODICTIONARY(dictionary,term(token))
7 else postings list
GETPOSTINGSLIST(dictionary,term(token))
8 if full (postings list)
9 then postings list DOUBLEPOSTINGSLIST(dictionary,
term(token)) 10 ADDTOPOSTINGSLIST(postings list,docID(token))
11 sorted terms SORTTERMS(dictionary )
12 WRITEBLOCKTODISK(sorted terms,dictionary ,output le)
13 return output le
4.4 Distributed Indexing Untuk pengindeksan dalam skala web, harus dibutuhkan komputer dengan sistem terdistribusi. Setiap
komputer tentu akan memiliki kerawanan dalam kesalahan. Ide dari distributed indexing ini ialah
menjaga mesin (komputer) utama untuk mengalihkan pekerjaan pengindeksan ke mesin lain yang
dianggap aman. Mesin utama akan memberikan tugas masing-masing ke mesin yang sedang tidak
digunakan. Ini akan menjadikan pengindeksan dilakukan dalam sekumpulan pekerjaan yang bersifat
parallel.
4.5 Dynamic Indexing Sampai dibagian distributed indexing kita masih mengasumsikan bahwa koleksi dari indeks ialah
bersifat statis. Namun sangatlah aneh jika dokumen harus di masukkan, hapus atau dimodifikasi
namun masih menggunakan tipe statis. Ini berarti seharusnya koleksi index dan posting harus bersifat
dinamis.
Pencapaian sederhana dari cara ini ialah dengan menjaga index utama yang besar didalam disk.
Dokumen baru akan dimasukkan kedalam index yang lebih kecil sebagai pembantu. Dalam proses
pencariannya, akan dicari dari kedua kumpulan tersebut (indeks utama dan index pembantu)
kemudian digabungkan menjadi satu. Namun, dynamic indexing memiliki masalah ketika
penggabungan dilakuakn secara sering. Akan terjadi penurunan performa ketika penggabungan
dilakukan.
Top Related