(لعبة) نظام فهرسة المستندات منخفضة المستوى واسترجاعها
IndexerMcindexface هو نظام فهرسة وثائق تقليدية صغيرة كتبت كذريعة للعب مع FSTS (باستخدام قفص BurntSushi/fst ) وقدرات التوازي الخاصة بـ Rust (باستخدام أيضًا صندوق crossbeam لتمرير الرسائل)
سمات:
- مكتوب بالكامل في الصدأ
- يستخدم FSTS للوصول السريع إلى المنشورات
- يتيح المستندات المعطلة ، ويستخدم نموذج استرجاع
BM25F (ملاحظة: لم أتحقق من صحته) - تتم تعديل مرحلة الفهرسة مع ThreadPool من خلال إنشاء ودمج فهارس مستقلة
- (لاحظ أن هذا تطبيق ساذج ، وعلى الرغم من أنه سريع للغاية ، إلا أنه يمكن أن يكون جائعًا بالفعل للذاكرة)
- تتم موازاة مرحلة الاسترجاع مع threadpool ، حيث في هذه الحالة يدير بحثًا مختلفًا عن كل رمز مميز
تحذيرات:
- هذا مشروع لعبة (على سبيل المثال: ملفات الفهرس غير مضغوطة ، وتقنيات التوازي ساذجة ومجهول الموارد ...) وواجهة برمجة التطبيقات أساسية للغاية.
الاستخدام:
- ما عليك سوى
cargo run --release . ستنشئ main.rs مجموعة وهمية من 1000 ملف باستخدام Crate MitchellRhysHall/random_word ، ثم سيتم فهرسها وتنفيذ استعلام عشوائي بحجم معتدل.
التحسينات المحتملة:
- يفتح استخدام FSTS العديد من الاحتمالات ، حيث يمكن إجراء عمليات البحث التي تشبه Regex بسهولة.
- تقنيات التوازي الأفضل: في الوقت الحالي ، سيقوم كل مؤشر ترابط بإنشاء فهرس خاص به في الذاكرة ، والذي سيتم ربطه لاحقًا وكتابته إلى الملفات الثنائية. هذا يعني أن استخدام الذاكرة يمكن أن يكون مرتفعًا جدًا لمجموعات أكبر من المستندات.
- أفضل الرمز المميز.
- N-Gram أو فهارس N-Gram أو أكثر تفصيلاً.
- نماذج استرجاع بديلة ، استفسارات العبارات ، إلخ.