Dalam rekayasa perangkat lunak, kami membuat indeks sepanjang waktu (misalnya, dalam basis data) tetapi saya juga mendengar banyak orang berbicara tentang indeks terbalik. Apakah ada sesuatu yang secara fundamental berbeda di antara keduanya? Mereka terdengar seperti hal yang sama.
indexing
terminology
guidoisme
sumber
sumber
Jawaban:
Salah satu penggunaan yang umum adalah "... untuk memungkinkan pencarian teks lengkap dengan cepat."
Kedua jenis tersebut menunjukkan arah . Satu membawa Anda maju melalui indeks, dan yang lainnya membawa Anda mundur (kebalikan) melalui indeks. Itu dia. Tidak ada misteri untuk diungkap di sini. Kalau tidak, kedua jenis itu identik, itu hanya pertanyaan tentang informasi apa yang Anda miliki , dan akibatnya informasi apa yang Anda coba temukan.
Untuk menjawab pertanyaan Anda, saya rasa sebenarnya tidak ada cara untuk mengetahui mengapa penggunaannya seperti sekarang ini. Satu-satunya alasan penting untuk mendefinisikan yang mana
forward
dan mana yang ada di artinya.inverted
adalah agar kita semua dapat membicarakannya, dan semua orang tahu arah mana yang kita bicarakan. Pikirkan tentang istilah "kiri" dan "kanan": keduanya relatif. Mana yang tidak penting, kecuali bahwa setiap orang perlu menyetujui mana yang "kiri" dan mana yang "benar" agar kata-kata itu memiliki makna. Jika, sebagai suatu budaya, kami memutuskan untuk memutar ke kiri dan ke kanan, maka Anda akan memiliki masalah yang sama untuk mengetahui apa itu "belok kanan" vs "belok kiri" karena makna yang disepakati telah berubah. Namun, penamaannya sewenang-wenang,Dalam komentar Anda di mana Anda bertanya, "tolong jangan hanya mendefinisikan istilah", Anda kehilangan intinya, dan saya pikir Anda hanya terpaku pada kata-kata ketika sama sekali tidak ada perbedaan di antara keduanya.
Untuk kepentingan pembaca di masa mendatang, sekarang saya akan memberikan beberapa contoh indeks "maju" dan "terbalik":
Contoh 1: Pencarian web
Jika Anda berpikir bahwa invers dari suatu indeks adalah seperti invers dari suatu fungsi dalam matematika , di mana invers adalah suatu hal khusus yang memiliki bentuk berbeda, maka Anda salah: bukan itu masalahnya di sini.
Di mesin pencari Anda memiliki daftar dokumen (halaman di situs web), di mana Anda memasukkan beberapa kata kunci dan mendapatkan hasil kembali.
Sebuah indeks ke depan (atau hanya indeks) adalah daftar dokumen , dan mana kata-kata muncul di dalamnya. Dalam contoh penelusuran web, Google merayapi web, membuat daftar dokumen, mencari tahu kata mana yang muncul di setiap laman.
The Indeks terbalik adalah daftar kata-kata , dan dokumen di mana mereka muncul. Dalam contoh pencarian web, Anda memberikan daftar kata (permintaan pencarian Anda), dan Google menghasilkan dokumen (link hasil pencarian).
Keduanya adalah indeks - ini hanya pertanyaan ke arah mana Anda akan pergi. Maju dari dokumen-> ke-> kata, terbalik dari kata-> ke-> dokumen.
Contoh 2: DNS
Contoh lain adalah pencarian DNS (yang mengambil nama host, dan mengembalikan alamat IP) dan pencarian terbalik (yang mengambil alamat IP, dan memberi Anda nama host).
Contoh 3: Sebuah buku
Indeks di bagian belakang buku sebenarnya adalah indeks terbalik , seperti yang didefinisikan oleh contoh di atas - daftar kata, dan di mana menemukannya di dalam buku. Dalam sebuah buku, daftar isi seperti indeks maju : ini adalah daftar dokumen (bab) yang berisi buku itu, kecuali daripada mencantumkan kata-kata di bagian itu, daftar isi hanya memberi nama / deskripsi umum tentang apa. terkandung dalam dokumen-dokumen (bab).
Contoh 4: Ponsel Anda
The Indeks maju di ponsel Anda adalah daftar kontak, dan yang nomor telepon (seluler, rumah, pekerjaan) berhubungan dengan kontak-kontak. The indeks terbalik adalah apa yang memungkinkan Anda untuk secara manual memasukkan nomor telepon, dan ketika anda menekan "dial" Anda melihat nama orang, bukan nomor, karena ponsel telah mengambil nomor telepon dan menemukan Anda kontak yang terkait dengan itu.
sumber
Mereka menyebutnya terbalik hanya karena indeks maju sudah ada. Ambil contoh mesin pencari, terdiri dari dua bagian: bagian pertama adalah "web crawler dan parser" yang membangun indeks dari dokumen ke kata, bagian kedua adalah database pencarian yang membangun indeks dari kata ke dokumen. Karena indeks pertama ada, kita secara alami menyebut indeks kedua sebagai indeks terbalik.
Jika Anda menamai TOC (Daftar Isi) sebuah buku sebagai indeks, maka Anda harus menyebut indeks di akhir buku sebagai "indeks terbalik". Atau, di sisi lain, Anda dapat memanggil TOC sebagai indeks terbalik.
sumber
inverted index
meskipun semua indeks normal dalam hidup kita sudah digunakan sebagaiinverted
.biasanya ketika berbicara tentang indeks, yang Anda maksud adalah beberapa perhitungan tambahan atau hasil tersimpan dari prosedur yang telah dilakukan untuk mempercepat aplikasi (misalnya MySQL atau RDBMS lainnya. Konsultasikan dengan MySQL dokumen ). Pengindeksan juga dapat dikaitkan dengan caching dll.
Indeks terbalik membuat file dengan struktur yang terutama ditujukan untuk pencarian (teks lengkap).
Indeks terbalik terdiri dari dua file utama:
Dalam kosa kata adalah kata-kata umum yang diekstrak dari teks (tentu saja setelah memfilter kata-kata daftar hitam seperti kata ganti). File kejadian memegang koneksi antara kata dan dokumen (word1 muncul di doc1 dan doc2, bukan di doc3). Itu direpresentasikan dalam bentuk matriks.
Pada gambar di atas ditunjukkan proses pembuatan dua file yang disebutkan.
Jika Anda lebih terlibat dalam masalah ini, saya dapat merekomendasikan Anda sebuah buku hebat yang ditulis oleh Ricardo Yated - Pengambilan Informasi Modern ( Lihat di Amazon ) - tentang halaman 200 saya rasa.
Semoga membantu :-)
sumber
normalocity telah sangat membedakan antara indeks maju dan indeks terbalik tetapi untuk pertanyaan mengapa satu disebut indeks maju dan yang lainnya indeks terbalik, mungkin inilah mengapa mereka disebut seperti itu ---
Mengambil contoh mesin pencari merangkak dan mengindeks (atau membangun indeks untuk sebuah buku), indeks maju dapat dibangun secara bersamaan saat Anda merayapi halaman web (atau membaca buku) atau maju . Jadi jika Anda memiliki 10 halaman web untuk dirayapi (atau 10 bab dalam sebuah buku) Anda dapat merayapi halaman web pertama (membaca bab pertama) dan kemudian membuat daftar kata-kata yang muncul di halaman web (kata-kata yang muncul di bab) dan melanjutkan proses ini untuk halaman web lain (bab lain) sehingga pada saat Anda merayapi 10 halaman web (baca semua 10 bab) indeks maju Anda selesai dengan setiap halaman web (bab) menunjuk ke daftar kata yang ada di dalamnya .
Tetapi untuk membuat indeks terbalik Anda harus merayapi 10 halaman web (baca 10 bab) dan kemudian mengambil setiap kata dari setiap daftar dokumen dan mencari tahu dokumen mana yang mengandung kata itu. Jadi ini seperti mundur setelah Anda menjelajahi halaman web (baca bab dari buku ini) . Jadi itu disebut indeks terbalik.
Ini hanya spekulasi saya.
sumber
Ada banyak jenis indeks. Misalnya, B-tree, R-tree, hash ... Untuk tujuan yang berbeda, kita harus memilih indeks yang benar.
Indeks terbalik adalah indeks yang spesial. Indeks terbalik biasanya digunakan di mesin pencari teks lengkap. Gunakan indeks terbalik, kita dapat menemukan lokasi kata dalam dokumen (atau kumpulan dokumen) secepat mungkin. Pikirkan tentang batas memori dan cpu, indeks lain tidak dapat menyelesaikan pekerjaan ini.
Anda dapat membaca dokumen Lucene untuk lebih jelasnya. Ini adalah mesin pencari open source. http://lucene.apache.org/java/docs/index.html
sumber
Istilah "Indeks Kata Terbalik" mengacu pada perubahan hubungan satu dokumen yang berisi banyak kata, ke setiap kata unik yang berisi (atau mengidentifikasi) daftar banyak dokumen. Ini secara efektif mengambil Hubungan Satu-ke-Banyak (Dokumen ke Kata) dan Membalik (atau membalikkan) sedemikian rupa sehingga Hubungan Satu-ke-Banyak yang "Terbalik" sekarang ada, yang masing-masing kata-unik terkait dengan Banyak- Dokumen (yaitu, semua yang mengandung kata itu). Asalnya benar-benar sesederhana itu, dan istilah "indeks terbalik" digunakan untuk mendeskripsikan indeks manual dari jenis yang sama jauh sebelum komputer dan pengindeksan elektronik berkecepatan tinggi bahkan ada (ya, memang, saya sudah tua, programmer tua, hampir cukup tua untuk menganggap Grace Hopper sebagai "wanita muda yang manis" usia yang sesuai untuk pacaran kembali ketika COBOL adalah bahasa baru yang berkilau). Mohon jangan buang kami, ya ampun dulu, karena kami terkadang memberikan satu atau dua informasi sejarah yang berguna, dan bahkan mungkin berharga, - saat RAM pribadi kami masih berfungsi. [menyeringai]
sumber
dalam indeks terbalik, kami memiliki bentuk berikut:
word1-> daftar dokumen tempat itu muncul (urutan diurutkan)
word2-> daftar dokumen tempat itu muncul (urutan diurutkan)
Ini sangat berguna untuk pemrosesan kueri mesin telusur karena memungkinkan kami menemukan dokumen tempat kata itu muncul.
Anda dapat menggunakan mesin learing yang diawasi untuk membuat indeks terbalik ini.
sumber
Satu perbedaan lagi:
Menangani pembaruan dengan indeks terbalik itu mahal dibandingkan dengan indeks maju.
Indeks maju menangani pembaruan dengan mudah dengan merefleksikan perubahan hanya dalam indeks dokumen yang sesuai, sedangkan pada indeks terbalik, perubahan yang sama harus tercermin dalam beberapa posisi di seluruh indeks terbalik.
sumber