Pemrosesan query dengan inverted index

Melanjutkan posting sebelumnya, posting ini membahas cara pemrosesan query dengan inverted index yang telah terbentuk. Misalkan indeks kita seperti berikut (frekuensi term diabaikan untuk penyederhanaan) :

Dan misalkan query yang dimasukkan adalah “baseball summer”. Maka query perlu dipecah menjadi term. Dengan demikian kita memiliki 2 buah term, yaitu “baseball” dan “summer”.

Untuk setiap term ini, cari pada indeks. Karena menggunakan database, maka cukup dengan query untuk SELECT posting list dengan term tertentu untuk mendapatkan posting list yang sesuai. Dihasilkan daftar posting seperti berikut :

  • “baseball” → (1)
  • “summer” → (1, 2, 4)

Kedua posting list itu digabungkan, maka terbentuk array :

(1, 2, 4, 1)

Kemudian array tersebut diurutkan :

(1, 1, 2, 4)

Kemudian dihitung frekuensi masing-masing elemen array dan diurutkan berdasarkan frekuensinya, dihasilkan :

doc_id  |   freq
     1  |      2
     2  |      1
     4  |      1

Dengan demikian dapat dilihat hasil pencarian dengan query yang diberikan adalah (terurut ranking-nya) :

  • Doc 1
  • Doc 2
  • Doc 4

 

Iklan