أعجوبة

البرمجيات الحُرة والمفتوحة المصدر

أدوات المستخدم

أدوات الموقع


thawab:alternatives

اختلافات

عرض الاختلافات بين النسخة المختارة و النسخة الحالية من الصفحة.

رابط إلى هذه المقارنة

جانبي المراجعة السابقةالمراجعة السابقة
thawab:alternatives [2009/09/24 13:36] alsadithawab:alternatives [2015/04/23 03:21] (حالي) – تحرير خارجي 127.0.0.1
سطر 1: سطر 1:
 +====== التقنيات والبدائل ======
 +يصمم "ثواب" بطريقة modular تسمح باستبدال أجزاء منه عند الحاجة.
 +
 +===== هيئة الملفات ونموذج البيانات =====
 +حيث أننا نريد أن نترك للمحرر تعريف وسوم جديدة للنص بحسب نوع المحتوي كأن يحدد أن جزء كذا وكذا من النص هو تعريف بالراوي ..إلخ فإن نموذج البيانات يجب أن يكون مرن جدا وغير محدود. كذلك يجب أن يكون سريعا وقابلا للتبادل وأن يسمح بالتحرير التزايدي والجزئي
 +
 +وقد وقع الاختيار على sqlite3 وتم عمل نموذج البيانات
 +
 +كان علينا الاختيار بين 
 +  * هيئة الملفات الخاصة بقاعدة بيانات مضمنة embedded RDBM مثل sqlite
 +  * طريقة Serialization تتيح تمثيل xml مثل
 +
 +    * [[http://en.wikipedia.org/wiki/Asn.1|Abstract Syntax Notation One]]
 +  * [[http://hessian.caucho.com/|hessian]]
 +  * http://code.google.com/p/protobuf/
 +  * طريقة خاصة بنا
 +
 +للتفصيل انظر [[datamodel]]
 +
 +===== محرك البحث =====
 +إن أقوى محرك بحث متوفر لدينا هو lucene
 +وله العديد من [[http://lucene.apache.org/java/docs/features.html|المزايا الفائقة]] منها
 +  * الأداء
 +    * سرعة الفهرسة
 +    * متطلبات قليلة من الرام تصل إلى 1 م.ب فقط
 +    * الفهرسة التزايدية أي متابعة الفهرسة من حيث توقفت وفهرست التغيّرات فقط
 +    * صغر حجم الفهرس حيث يصل إلى 20-30% من حجم المحتوى
 +  * الدقة
 +    * النتائج الأفضل والأقرب أولا
 +    * البحث عن حقول بعينها
 +    * الترتيب وفق أي حقل
 +    * يسمح بتزامن البحث والتحديث
 +
 +وعيوبه أنه يحتاج JRE وإن كان يعمل نظريا دونها عبر GCJ  
 +(كما في [[http://lucene.apache.org/pylucene/|pylucene]]) حيث أن كل التنفيذات له بلغات غير جافا مهملة التطوير ولا ترقى لمستواه
 +
 +من الأمثلة على محاولات تنفيذه بلغات أخرى (بايثون مثلا)
 +  * lupy مشروع متوقف عند الإصدار الأول من lucene
 +  * مشروع بالكاد بدأ و nlupy مبني على أحدث إصدار من Lucene لكنه لا يعمل الآن.
 +
 +للمزيد [[http://stackoverflow.com/questions/438315/is-there-a-pure-python-lucene|انظر]]
 +
 +===== محرك البحث البديل =====
 +
 +من الصعب العثور على بديل لمحرك lucene إلا أن أهم البدائل هو [[http://xapian.org|xapian]] المكتوب على سي++ ويمكن ربطه على عدة لغات مثل بايثون (اسم الحزمة في أعجوبة لينكس هو xapian-bindings-python)
 +
 +أهم مزاياه هي أننا إن استخدمناه لا نعود مرتبطين بلغة جافا.
 +
 +لكن هذا لا يعني أنه هذا هو السبب الوحيد للتفكير به كبديل انظر [[http://xapian.org/features.php|صفحة مزاياه]] للتفصيل.
 +
 +هناك بديل آخر اسمه [[http://whoosh.ca/|Whoosh]] مكتوب على بايثون pure python
 +
 +
 +===== بدائل الواجهة =====
 +يؤجل إلى حينه
 +
 +  * تطبيق ويب عبر خادم مضمن Jetty يطلق المتصفح المفضل
 +  * تطبيق ويب عبر WebKit دون خادم
 +  * تطبيق سطح مكتب متكامل عبر Cairo أو أي محرك رسومي آخر
  
thawab/alternatives.txt · آخر تعديل: 2015/04/23 03:21 بواسطة 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki