محرك بحث بسيط للغاية - جعل محركات البحث بسيطة ؟؟
النطق: "يا انظر"
فقط للمتعة! أردت حقًا أن أتعلم Rust ، وفي ذلك الوقت كنت مهتمًا حقًا بكيفية عمل محركات البحث ، لذلك لم يكن هناك أي طريقة أفضل لتحقيق كلا الهدفين أكثر من هذا المشروع بالذات!
هذا المستودع هو monorepo الذي يتكون من المكونات المستقلة التي تشكل محرك البحث OSSE.
$ nix develop
قم بتثبيت البضائع والجذع مع الطريقة المفضلة لديك (مثل مدير الحزمة المفضل لديك).
$ cargo run --bin crawler
$ cargo run --bin indexer
$ trunk serve frontend/index.html --open
بمجرد تشغيل جميع المكونات ، يمكنك الانتقال إلى 127.0.0.1:8080 على متصفح الويب المفضل لديك والبدء في استخدام Osse!
يتم فصل محرك البحث OSSE إلى ثلاثة مكونات مستقلة:
يوفر هذا المكون كلاً من تطبيق مؤشر محرك البحث الفعلي و API REST المستخدمة للبحث وإضافة الموارد المفهرسة. يستخدم Actix Web لـ REST API (يعمل على المنفذ 4444). لتنفيذ بنية بيانات الفهرس الفعلية ، نستخدم حاليًا فهرسًا عكسيًا بسيطًا للغاية يتم تنفيذه باستخدام hashmap ، وبالتالي يتم فقد جميع الموارد المفهرسة حاليًا في كل مرة يتم فيها إعادة تشغيل المفهرس.
هذا المكون عبارة عن زاحف متكرر بسيط يقوم بإعادة توجيه HTML الخام المزروع إلى الفهرس. يستخدم REQWest لجلب قائمة محددة مسبقًا من مواقع الويب الجذرية وتوصيفها بالمكشطة ، وإرسال محتويات موقع الويب إلى الفهرس واستخراج جميع روابطه ، وإضافتها إلى قائمة انتظار من المواقع الإلكترونية. هذه العملية "متكررة" متكررة إلى أجل غير مسمى.
هذا المكون هو واجهة ويب بسيطة للمؤشر. يسمح للمستخدمين بالبحث وتصور النتائج بطريقة سهلة الاستخدام. تم تصميمه حاليًا باستخدام Yew ، والذي يسمح لنا بكتابة الواجهة الأمامية في Rust وإنتاج WEB-UI "Fast Fast".
"إذا كان لديك أي أفكار أو تصحيحات ، فيرجى عدم التردد في المساهمة في OSSE!"
تم ترخيص هذا البرنامج بموجب BSD-2-Plause © Baitinq.