Laba-laba tidak berhenti. Mereka merangkak. Mereka menemukan halaman baru, memperbarui halaman lama, dan tidak pernah benar-benar menyelesaikan pekerjaannya. Web berubah terlalu cepat untuk diselesaikan. Namun begitu data diambil, pekerjaan sebenarnya dimulai. Mesin harus menyimpannya. Itu harus membuatnya dapat dicari.
Ini bukan hanya membuang teks ke dalam folder. Ada dua hal penting di sini. Pertama, data apa yang Anda simpan? Kedua, bagaimana cara mengaturnya?
Mengapa Penyimpanan Sederhana Gagal
Bayangkan sebuah mesin pencari yang hanya mengingat satu kata dan URL kemunculannya. Tidak berguna. Anda akan mendapatkan hasil yang sama untuk “bank” di situs keuangan dan “bank” di halaman pariwisata tepi sungai. Tidak ada konteks. Tidak ada peringkat.
Mesin sebenarnya membutuhkan lebih banyak. Ini melacak frekuensi. Ini menghitung seberapa sering suatu istilah muncul. Itu terlihat pada posisinya. Kata-kata di judul lebih penting daripada kata-kata di footer. Kata-kata dalam tautan penting. Kata-kata dalam meta tag penting. Setiap faktor mendapat bobot.
Pembobotan ini merupakan hak milik. Google menggunakan satu rumus. Bing menggunakan yang lain. Itu sebabnya kueri yang sama menghasilkan hasil yang berbeda pada platform berbeda. Tidak ada satu pun urutan hasil yang “benar”. Hanya ada algoritma berbeda yang memprioritaskan sinyal berbeda.
Pengepakan Data Ketat
Ruang penyimpanan membutuhkan uang. Insinyur memampatkan data. Whitepaper Google asli menjelaskan penggunaan hanya dua byte (16 bit) untuk menyimpan metadata kompleks untuk satu kata yang ditemukan.
Dalam 16 bit itu:
– 2 hingga 3 bit mungkin melacak kapitalisasi
– 2 hingga 3 bit mungkin melacak ukuran font
– 2 hingga 3 bit mungkin melacak posisi relatif terhadap kata lain
Tampaknya sangat kecil. Namun itu menyimpan cukup informasi untuk menentukan peringkat halaman secara efektif. Datanya dipadatkan. Itu dikodekan. Kemudian siap untuk diindeks.
Solusi Tabel Hash
Indeks memiliki satu tugas: kecepatan. Menemukan data secara instan. Bahkan untuk pertanyaan yang rumit.
Anda mungkin berpikir urutan abjad berhasil. Tidak. Dalam bahasa Inggris, kata “M” ada dimana-mana. Kata-kata “X” jarang terjadi. Kamus mencerminkan hal ini. M tebal. X tipis. Pencarian untuk “M” membutuhkan waktu lebih lama dibandingkan mencari “X” dalam sistem yang kurang optimal karena ketidakseimbangan distribusi.
Hashing memperbaikinya.
Hashing menerapkan rumus pada setiap kata. Ini mengubah kata menjadi nilai numerik. Nilai ini mendistribusikan entri secara merata ke sejumlah keranjang yang tetap. Itu mengabaikan alfabet. Ini mengabaikan frekuensi linguistik. Ini menciptakan keseragaman buatan.
Tabel hash menyimpan kunci numerik dan penunjuk ke data aktual. Data itu sendiri dapat disimpan dengan cara seefisien mungkin. Penunjuk menjembatani kesenjangan antara pencarian cepat dan penyimpanan berat.
Pemisahan ini adalah kuncinya. Anda tidak memindai seluruh database. Anda menghitung hash, langsung ke ember, dan menarik penunjuk. Itu langsung. Ini cepat. Ini menangani beban.
Mengapa Ini Penting bagi Anda
Lain kali Anda mengetikkan kueri dan mendapatkan hasil dalam milidetik, ingatlah tabel hash. Ingat bobotnya. Ingat kompresinya. Webnya berantakan. Ini kacau. Namun indeks menjinakkannya. Ini mengubah kebisingan menjadi keteraturan.
Laba-laba terus merangkak. Indeks terus tumbuh. Dan algoritmanya terus disesuaikan. Karena jika mereka berhenti, Anda akan menyadarinya.






























