لم يتم تطويره بنشاط. يرجى مراجعة توشي بدلا من ذلك!
خادم بحث متوافق مع Elasticsearch خفيف الوزن.
يعد محرك البحث عالي الجودة أمرًا مهمًا للعديد من مواقع الويب، وتوفر Elasticsearch ذلك من خلال واجهة REST API سهلة الاستخدام. لكن مشكلة Elasticsearch هي أنها تتطلب ما لا يقل عن 2 غيغابايت من الذاكرة، مما يجعل تشغيلها مكلفًا.
الهدف من هذا المشروع هو إنشاء خادم بحث جديد يستخدم ميزات البحث القوية وواجهة برمجة التطبيقات البسيطة الخاصة بـ Elasticsearch، مع تنفيذه بلغة ذات تحكم أكبر في استخدام الذاكرة. نحن نهدف إلى إبقاء استخدام الذاكرة أقل من 100 ميجابايت (باستثناء ذاكرة التخزين المؤقت) لذلك يجب أن يكون تشغيلها رخيصًا جدًا.
يعمل الصدأ على تحرير الذاكرة أثناء مرورها بدلاً من ترك الذاكرة غير المستخدمة ليتم جمعها لاحقًا بواسطة "جامع البيانات المهملة" مثل Java. في Elasticsearch، يمكن أن تؤدي هذه الكومة من البيانات المهملة إلى إهدار غيغابايت من الذاكرة التي يمكن استخدامها كذاكرة تخزين مؤقت.
Rust هي لغة برمجة أنظمة من Mozilla تم تصميمها لبناء برامج سريعة وآمنة وموثوقة.
يرجى النظر في هذا المشروع بجودة ما قبل ألفا. وهو يدعم حاليًا فقط مجموعة فرعية من واجهات برمجة التطبيقات الخاصة بـ Elasticsearch والتي ربما لا تكون كافية لتشغيل معظم التطبيقات.
وهو يدعم حاليًا الفهرسة، سواء بشكل مجمّع أو فردي (ومع ذلك، فإن المفهرس المجمع بطيء جدًا في الوقت الحالي)، والبحث باستخدام خوارزمية التشابه BM25.
راجع خارطة الطريق للحصول على قائمة بالأشياء التي يجري العمل عليها في الوقت الحالي.
راجع دعم DSL لاستعلام Elasticsearch.
تم اختبار Rusticsearch رسميًا على نظامي التشغيل Linux وWindows فقط، ولكن يجب تشغيله أيضًا على نظام التشغيل Mac OS X.
يمكن تجميع Rusticsearch باستخدام Rust Stable 1.15 أو الأحدث. يمكنك تنزيله من موقع Rust أو يمكنك استخدام Rustup.
بمجرد تثبيت Rust، قم باستنساخ الريبو وتشغيل cargo run
:
git clone [email protected]:kaedroho/rusticsearch.git
cd rusticsearch
cargo run