thawab:alternatives

التقنيات والبدائل

يصمم “ثواب” بطريقة modular تسمح باستبدال أجزاء منه عند الحاجة.

هيئة الملفات ونموذج البيانات

حيث أننا نريد أن نترك للمحرر تعريف وسوم جديدة للنص بحسب نوع المحتوي كأن يحدد أن جزء كذا وكذا من النص هو تعريف بالراوي ..إلخ فإن نموذج البيانات يجب أن يكون مرن جدا وغير محدود. كذلك يجب أن يكون سريعا وقابلا للتبادل وأن يسمح بالتحرير التزايدي والجزئي

وقد وقع الاختيار على sqlite3 وتم عمل نموذج البيانات

كان علينا الاختيار بين

  • هيئة الملفات الخاصة بقاعدة بيانات مضمنة embedded RDBM مثل sqlite
  • طريقة Serialization تتيح تمثيل xml مثل

للتفصيل انظر هيئة الملفات ونموذج البيانات

محرك البحث

إن أقوى محرك بحث متوفر لدينا هو lucene وله العديد من المزايا الفائقة منها

  • الأداء
    • سرعة الفهرسة
    • متطلبات قليلة من الرام تصل إلى 1 م.ب فقط
    • الفهرسة التزايدية أي متابعة الفهرسة من حيث توقفت وفهرست التغيّرات فقط
    • صغر حجم الفهرس حيث يصل إلى 20-30% من حجم المحتوى
  • الدقة
    • النتائج الأفضل والأقرب أولا
    • البحث عن حقول بعينها
    • الترتيب وفق أي حقل
    • يسمح بتزامن البحث والتحديث

وعيوبه أنه يحتاج JRE وإن كان يعمل نظريا دونها عبر GCJ (كما في pylucene) حيث أن كل التنفيذات له بلغات غير جافا مهملة التطوير ولا ترقى لمستواه

من الأمثلة على محاولات تنفيذه بلغات أخرى (بايثون مثلا)

  • lupy مشروع متوقف عند الإصدار الأول من lucene
  • مشروع بالكاد بدأ و nlupy مبني على أحدث إصدار من Lucene لكنه لا يعمل الآن.

للمزيد انظر

محرك البحث البديل

من الصعب العثور على بديل لمحرك lucene إلا أن أهم البدائل هو xapian المكتوب على سي++ ويمكن ربطه على عدة لغات مثل بايثون (اسم الحزمة في أعجوبة لينكس هو xapian-bindings-python)

أهم مزاياه هي أننا إن استخدمناه لا نعود مرتبطين بلغة جافا.

لكن هذا لا يعني أنه هذا هو السبب الوحيد للتفكير به كبديل انظر صفحة مزاياه للتفصيل.

هناك بديل آخر اسمه Whoosh مكتوب على بايثون pure python

بدائل الواجهة

يؤجل إلى حينه

  • تطبيق ويب عبر خادم مضمن Jetty يطلق المتصفح المفضل
  • تطبيق ويب عبر WebKit دون خادم
  • تطبيق سطح مكتب متكامل عبر Cairo أو أي محرك رسومي آخر

نقاش

أدخل تعليقك:
 
آخر تعديل:: 23 نيسان 2015 الساعة 00:21 (تحرير خارجي)