Mesin pencari yang terlalu sederhana - membuat mesin pencari menjadi sederhana ??
Pengucapan: "oh-see"
Hanya untuk bersenang-senang! Saya benar -benar ingin belajar Rust dan pada saat itu saya benar -benar tertarik pada cara kerja mesin pencari, jadi tidak ada cara yang lebih baik untuk mencapai kedua tujuan daripada dengan proyek ini!
Repositori ini adalah monorepo yang dibentuk oleh komponen independen yang membentuk mesin pencari OSSE.
$ nix develop
Instal kargo dan batang dengan metode pilihan Anda (seperti manajer paket favorit Anda).
$ cargo run --bin crawler
$ cargo run --bin indexer
$ trunk serve frontend/index.html --open
Setelah semua komponen berjalan, Anda dapat menavigasi ke 127.0.0.1:8080 di browser web favorit Anda dan mulai menggunakan OSSE!
Mesin pencari OSSE dipisahkan menjadi tiga komponen independen:
Komponen ini menyediakan implementasi pengindeks mesin pencari aktual dan API REST yang digunakan untuk mencari dan menambahkan sumber daya yang diindeks. Menggunakan Actix Web untuk API REST (berjalan di port 4444). Untuk implementasi struktur data pengindeks aktual, kami saat ini menggunakan indeks terbalik yang sangat sederhana yang diimplementasikan dengan hashmap, sehingga semua sumber daya yang diindeks saat ini hilang setiap kali pengindeks dimasukkan kembali.
Komponen ini adalah perayap rekursif sederhana yang meneruskan HTML mentah yang dirangkak ke pengindeks. Ini menggunakan Reqwest untuk mengambil daftar situs web root yang telah ditentukan dan parsing dengan scraper, mengirimkan konten situs web ke pengindeks dan mengekstraksi semua tautannya, menambahkannya ke antrian situs web untuk dirangkak. Proses ini adalah "rekursif" diulang tanpa batas waktu.
Komponen ini adalah antarmuka web sederhana untuk pengindeks. Ini memungkinkan pengguna untuk mencari dan memvisualisasikan hasil dengan cara yang ramah pengguna. Saat ini dibangun menggunakan Yew, yang memungkinkan kami untuk menulis frontend dengan karat dan menghasilkan Web-UI berbasis WASM yang "sangat cepat".
"Jika Anda memiliki ide atau tambalan, jangan ragu untuk berkontribusi pada OSSE!"
Perangkat lunak ini dilisensikan di bawah BSD-2-Clause © BaitinQ.