جدول المحتويات

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

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

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

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

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

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

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

محرك البحث

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

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

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

للمزيد انظر

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

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

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

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

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

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

يؤجل إلى حينه