البحث بالمحارف العربية ـ وتحسينه في كوها

 البحث بالمحارف العربية ـ وتحسينه في كوها

بسم الله الرحمن الرحيم .
سأتحدث في هذه التدوينة عن واحدة من أهم الإشكاليات التي تواجه أي مستخدم جديد لكوها من عالمنا العربي ) ، وهي مشكلة البحث بالمحارف العربية ، وحاجتنا لتجاهل بعض المحارف مثل الـ ، تجاهل التنقيط عن بعض المحارف مثل ه ة أو ي ى … أو أي نوع آخر من المحارف ، حيث أنك ستكون في نهاية هذا الدليل قادراً على تخصيص عملية البحث كما تناسبك.

أولاً تفعيل ICU ، لدعم المحارف العربية بشكل بسيط :

في الحقيقة هنالك اشكالية كبيرة حول تفعيل ICU ، خاصة إذا ما كان ذلك في إصدارات كوها ما قبل الإصدار 3.8x أو حتى لاصدار 3.8x فما فوق ، سافصل أكثر في ذلك :

كوها ما قبلَ 3.8x :

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

الخطوات اليدوية لتعفيل البحث بالكود الموحد Unicode :   

 أولاً إن لم تكن لديك حزمة  yaz-icu نصبها  من خلال تنفيذ الأمر التالي :
install yaz-icu package
ثانياً ادخل للمسار التالي بالصلاحيات المطلوبة للتعديل فيه :
/etc/koha/zebradb/etc/
ثمَّ حرر الملف المسمى default.idx وتأكد ان بدايته تشابه ما هو موجود في ما يلي  (إن لم تكن كذلك فعدلها) :
# Traditional word index
# Used if completenss is ‘incomplete field’ (@attr 6=1) and
# structure is word/phrase/word-list/free-form-text/document-text
index w
completeness 0
position 1
alwaysmatches 1
firstinfield 1
icuchain words-icu.xml

# Phrase index
# Used if completeness is ‘complete {sub}field’ (@attr 6=2, @attr 6=1)
# and structure is word/phrase/word-list/free-form-text/document-text
index p
completeness 1
firstinfield 1
icuchain phrases-icu.xml

 لاحظ الملون بالأحمر ، هو ما عليك أن تتاكد من وجوده ، وما هو عريض ، هو اسم الملف الذي سيأخذ منه قواعد icu ليدعم المحارف العربية والسوابق واللواحق …
 ثالثاً أنشئ مستنداً نصياً (إن لم يكن موجوداً أصلاً أو حرره ) بالمسمى التالي  words-icu.xml  كما حُدد أعلاه بالأحمر العريض وتاكد من وجوده في نفس المسار السابق : 
/etc/koha/zebradb/etc/
ثمَّ تاكد من أن محتويات الملف النصي المسمى  words-icu.xml تشبه ما يلي (للدعم البسيط للمحارف العربية ) : 
<icu_chain locale=”ar”>
<transliterate rule=”‘> “/>
<transliterate rule=”[:Number:] { ‘-‘ > ” “/>
<transform rule=”[:Control:] Any-Remove”/>
<tokenize rule=”l”/>
<transform rule=”[[:WhiteSpace:][:Punctuation:]] Remove”/>
<transform rule=”NFD”/>
<transform rule=”[:Nonspacing Mark:] Remove”/>
<transform rule=”NFC”/>
<display/>
<casemap rule=”l”/>
</icu_chain>
احفظ الملف وأعد تشغيل زيبرا من خلال الأمر التالي :
/etc/init.d/koha-zebra-daemon restart
ثم اعد تكشيف فهرس زيبرا من خلال الأمر التالي : 
/usr/share/koha/bin/migration_tools/rebuild_zebra.pl -b -r -v -w
افتح كوها ، وابحث بالعربية 🙂 . 
شكر :
شكراً للأستاذ مسعود الشريف الذي ساعدني بإرشادات في ( الدعم البسيط للمحارف العربية للاصدارات قبل 3.8) .
وشكراً للسيد “Nitesh Rijal” الذي استفدتُ من مستنده المنشور للاستزادة في هذه المعلومات ودعم نفس العملية : 
http://www.scribd.com/doc/45190333/ICU-Support-in-Zebra

كوها 3.8x وما فوق :

بعد اصدار كوها 3.8x ، فبإمكانك اختصار الخطوات المذكورة آنفاً أثناء عملية التنصيب ، وذلك من خلال اختيار الخيار icu اثناء عملية التنصيب وبالضبط بالخطوة التي يسالك فيها عن التالي : 
Zebra has two methods to perform records tokenization
and characters normalization: CHR and ICU. ICU is
recommended for catalogs containing non-Latin
characters. (chr, icu) [chr] icu
 
اذا هنا عليك ان تختار icu ، وبذلك يتم التكوين الذي قمنا به بشكل يدوي أعلاه ، وستحتاج بعد ذلك ( في الاصدارات بعد 3.8 ) أن تخبر كوها انك تستخدم icu وذلك من خلال الذهاب للمسار التالي :
من واجهة كوها الأساسية > المزيد > الإدارة > تفضيلات النظام العامة > البحث > UseICU > اختر استخدم (use) .
ومن نفس المسار اختر للتفضيل  QueryFuzzy >اختر لا تحاول (don’t try)
واختر التفضيل QueryStemming > واجعل قيمته لا تحاول (don’t try)
 
وأعد تشغيل زيبرا من خلال الأمر التالي :
/etc/init.d/koha-zebra-daemon restart
ثم اعد تكشيف فهرس زيبرا من خلال الأمر التالي : 
/usr/share/koha/bin/migration_tools/rebuild_zebra.pl -b -r -v -w
افتح كوها ، وابحث بالعربية 🙂 .
 
 

ثانياً ـ تفعيل البحث بالمحارف العربية بشكل متقدم :

قد يبدو العنوان خطيراً ههه ولكن لا تقلق … فالأمر بسيط . في كلتا الحالتين المذكورتين أعلاه ، سواء ﻹصدارات كوها ما قبل 3.8x أو ما بعدها فإن الخطوة هي نفسها ن المهم ان تكون فعلت البحث البسيط بالمحارف العربية كما شرحتُ أعلاه ، ثم ما عليك إلا أن تحرر الملف المسمى words-icu.xml في المسار  
/etc/koha/zebradb/etc/
وجعله كالتالي لدعم تجاهل (ال) من بداية الكلمات ويمكن تطويرها لتدعم ه ة ي ى ون ين ان … حسب الحاجة . 
<icu_chain locale=”ar”>
<transliterate rule=”‘> “/>
<transliterate rule=”[:Number:] { ‘-‘ > ” “/>
<transform rule=”[:Control:] Any-Remove”/>
<tokenize rule=”l”/>
<transform rule=”[[:WhiteSpace:][:Punctuation:]] Remove”/>
<transform rule=”NFD”/>
<transform rule=”[:Nonspacing Mark:] Remove”/>
<transform rule=”NFC”/>
<transliterate rule=”{ الا > ا “/>
<transliterate rule=”{ الأ > أ “/>
<transliterate rule=”{ الإ > إ “/>
<transliterate rule=”{ الآ > آ “/>
<transliterate rule=”{ الب > ب “/>
<transliterate rule=”{ الت > ت “/>
<transliterate rule=”{ الث > ث “/>
<transliterate rule=”{ الج > ج “/>
<transliterate rule=”{ الح > ح “/>
<transliterate rule=”{ الخ > خ “/>
<transliterate rule=”{ الد > د “/>
<transliterate rule=”{ الذ > ذ “/>
<transliterate rule=”{ الر > ر “/>
<transliterate rule=”{ الز > ز “/>
<transliterate rule=”{ الس > س “/>
<transliterate rule=”{ الش > ش “/>
<transliterate rule=”{ الص > ص “/>
<transliterate rule=”{ الض > ض “/>
<transliterate rule=”{ الط > ط “/>
<transliterate rule=”{ الظ > ظ “/>
<transliterate rule=”{ الع > ع “/>
<transliterate rule=”{ الغ > غ “/>
<transliterate rule=”{ الف > ف “/>
<transliterate rule=”{ الق > ق “/>
<transliterate rule=”{ الك > ك “/>
<transliterate rule=”{ الل > ل “/>
<transliterate rule=”{ الم > م “/>
<transliterate rule=”{ الن > ن “/>
<transliterate rule=”{ اله > ه “/>
<transliterate rule=”{ الو > و “/>
<transliterate rule=”{ الي > ي “/>
<display/>
<casemap rule=”l”/>
</icu_chain>
للاستزادة حول اساليب صياغة هذه القواعد ارجع إلى دليل icu : 
http://userguide.icu-project.org/transforms/general/rules
 
تهانينا ! كوها الآن يتكلم ويجيب بالعربية 🙂 .
 
 
والسلام عليكم ورحمة الله

كرم قبسي .

متخصص في علوم المكتبات والمعلومات ، يعمل كمطور ويب وكمدير لنُظم المكتبة في جامعة المدينة العالمية ، له إسهامات في تطوير نظام كوها وفي توطينه عربياً ، المطور رقم 208 في قصة حياة كوها .


شارك المنشور مع أصدقائك :

Facebooktwittergoogle_plusredditpinterestlinkedinmail