يتيح هذا البرنامج المساعد Moodle استخدام Elasticsearch كمحرك بحث للبحث العالمي في Moodle.
يتم توفير الميزات التالية بواسطة هذا البرنامج المساعد:
يدعم هذا البرنامج المساعد حاليًا Moodle:
| نسخة مودل | فرع |
|---|---|
| Moodle 4.4 وما فوق | Moodle_404_Stable |
| Moodle 4.2 إلى 4.3 | Moodle_402_Stable |
| Moodle 3.10 إلى 4.1 | Moodle_310_stable |
| Moodle 3.5 إلى 3.9 | يتقن |
حاليًا ، يتم اختبار هذا البرنامج المساعد للعمل مقابل الإصدارات التالية من Elasticsearch:
والنسخة التالية من OpenSearch:
تم اختبار هذا البرنامج المساعد للعمل على المنصات السحابية التالية:
لاستخدام هذا البرنامج المساعد أولاً ، ستحتاج إلى إعداد خدمة Elaticsearch.
ما يلي هو الحد الأدنى العاري للحصول على Elasticsearch يعمل في بيئة نظام التشغيل Debian/Ubuntu. راجع Documention Elasticsearch للحصول على تعليمات متعمقة ، أو للحصول على تفاصيل حول كيفية التثبيت على أنظمة التشغيل الأخرى.
ملاحظة: يجب استخدام الإرشادات أدناه فقط لأغراض الاختبار و dev. لا تفعل هذا في الإنتاج. للحصول على إعداد إنتاج ، نوصي Elasticsearch بتشغيل مجموعة ، يمكن العثور على وثائق البدء هنا: https://www.elastic.co/n/Elasticsearch/Reference/current/setup.html
يتطلب Elasticsearch Java كشرط مسبق ، لتثبيت Java:
sudo apt-get install default-jre default-jdkبمجرد تثبيت Java ، سيتم تثبيت الأوامر التالية وبدء تشغيل Elasticsearch.
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.6.1.deb
sudo dpkg -i elasticsearch-6.6.1.deb
sudo update-rc.d elasticsearch defaults
sudo service elasticsearch startيمكن إجراء اختبار سريع عن طريق تشغيل ما يلي من سطر الأوامر.
curl -X GET 'http://localhost:9200'
يجب أن يبدو المخرجات مثل:
{
"name" : " 1QHLiux " ,
"cluster_name" : " elasticsearch " ,
"cluster_uuid" : " mLRqIsnVRrGdgg2OfHWNrg " ,
"version" : {
"number" : " 5.1.2 " ,
"build_hash" : " c8c4c16 " ,
"build_date" : " 2017-01-11T20:18:39.146Z " ,
"build_snapshot" : false ,
"lucene_version" : " 6.3.0 "
},
"tagline" : " You Know, for Search "
} افتراضيًا ، تتوفر خدمة Elasticsearch على: http://localhost:9200
يمكنك أيضًا تشغيل Elasticsearch مع Docker. ينشر المشروع حاوية خارجية للإصدار المدعوم مع التعليمات.
لاستخدام هذا البرنامج المساعد أولاً ، ستحتاج إلى إعداد خدمة Elaticsearch.
لاستخدام Microsoft Azure لتوفير خدمة Elasticsearch لـ Moodle:
يتطلب Elasticsearch Java كشرط مسبق ، لتثبيت Java:
sudo apt-get install default-jre default-jdk
بمجرد تثبيت Java ، سيتم تثبيت الأوامر التالية وبدء تشغيل Elasticsearch.
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.5.0.deb
sudo dpkg -i elasticsearch-5.5.0.deb
sudo update-rc.d elasticsearch defaults
sudo service elasticsearch start
يمكن إجراء اختبار سريع عن طريق تشغيل ما يلي من سطر الأوامر.
curl -X GET 'http://localhost:9200'
يجب أن يبدو المخرجات مثل:
{
"name" : "1QHLiux",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "mLRqIsnVRrGdgg2OfHWNrg",
"version" : {
"number" : "5.1.2",
"build_hash" : "c8c4c16",
"build_date" : "2017-01-11T20:18:39.146Z",
"build_snapshot" : false,
"lucene_version" : "6.3.0"
},
"tagline" : "You Know, for Search"
}
لاستخدام هذا البرنامج المساعد أولاً ، ستحتاج إلى إعداد خدمة Elaticsearch.
لاستخدام Amazon WebServices (AWS) لتوفير خدمة Elasticsearch لـ Moodle:
لاستخدام السحابة المرنة لتوفير خدمة Elasticsearch لـ Moodle:
بمجرد إعداد خدمة Elasticsearch ، يمكنك الآن تثبيت المكون الإضافي Moodle.
خطوات الإعداد هذه هي نفسها بغض النظر عن كيفية إعداد خدمة Elasticsearch.
<moodledir>/search/engine/elasticsudo -u www-data php admin/cli/upgrade ملاحظة: قد يكون المستخدم مختلفًا عن www-data على نظامك. بمجرد إعداد خدمة Elasticsearch ، يمكنك الآن تكوين المكون الإضافي Moodle.
خطوات الإعداد هذه هي نفسها بغض النظر عن كيفية إعداد خدمة Elasticsearch.
sudo -u www-data php search/cli/indexer.php --forceيستخدم هذا البرنامج المساعد Apache Tika لدعم فهرسة الملفات. تقوم Tika بتحليل الملفات ، وتستخرج النص ، وإعادته عبر واجهة برمجة تطبيقات REST.
يتم اختبار هذا البرنامج المساعد حاليًا للعمل مقابل الإصدارات التالية من Tika:
إعداد خدمة اختبار Tika مباشرة إلى الأمام. في معظم الحالات على بيئة Linux ، يمكنك ببساطة تنزيل Java Jar ثم تشغيل الخدمة.
wget http://apache.mirror.amaze.com.au/tika/tika-server-1.16.jar
java -jar tika-server-1.16.jar
سيبدأ هذا تيكا على المضيف. افتراضيًا ، تتوفر خدمة Tika على: http://localhost:9998
بمجرد توفر خدمة Tika ، يجب تكوين المكون الإضافي Elasticsearch في Moodle لدعم فهرسة الملفات.
على افتراض أنك قد اتبعت بالفعل خطوات التثبيت الأساسية ، لتمكين دعم فهرسة الملفات:
من موقع Apache Tika:
تكتشف مجموعة أدوات Apache Tika ™ واستخراج البيانات الوصفية والنص من أكثر من ألف نوع ملفات مختلفة (مثل PPT و XLS و PDF). يمكن تحليل كل أنواع الملفات هذه من خلال واجهة واحدة ، مما يجعل Tika مفيدًا لفهرسة محرك البحث ، وتحليل المحتوى ، والترجمة ، وأكثر من ذلك بكثير. يمكنك العثور على أحدث إصدار في صفحة التنزيل. يرجى الاطلاع على صفحة البدء للحصول على مزيد من المعلومات حول كيفية البدء في استخدام Tika.
من الشائع رؤية تطبيقات Elasticsearch باستخدام مكون إضافي لفريق ملف Elasticsearch بدلاً من خدمة قائمة بذاتها. الإضافات الحالية Elasticsearch هي غلاف حول Tika. (يستخدم محرك البحث SOLR أيضًا TIKA).
إن استخدام Tika كخدمة مستقلة له المزايا التالية:
استخراج المحتويات من البيانات الثنائية هو عملية كثيفة الموارد وتستهلك الكثير من الموارد. يوصى بشدة بتشغيل خطوط الأنابيب باستخدام هذا المعالج في عقدة مخصصة.
يمكن لهذا البرنامج المساعد استخدام خدمات الويب Amazon (AWS) [خدمة إعادة التعرف (https://aws.amazon.com/rekognition/) لتحديد محتويات الصور. ثم يتم فهرسة المحتوى المحدد بواسطة Elasticsearch ويمكن البحث عنه في Moodle (Cool Huh؟).
ملاحظة: يقتصر فهرسة الملفات من قبل Moodle's Core Global Search حاليًا على فهرسة الملفات فقط من مكانين. تم رفع عدد تعقب MDL-59459 لزيادة تغطية الملفات المفهرسة بواسطة Global Search.
حاليًا أفضل مورد لاستخدامه لاختبار وظائف البحث في الصور ، لذا أضف صورة عبر مورد ملف Moodle Course.
بمجرد إجراء إعداد Elasticsearch في AWS ، يجب تكوين Moodle للتعرف على الصور.
على افتراض أنك قد اتبعت بالفعل خطوات التثبيت الأساسية وخطوات فهرسة الملف ، لتمكين التعرف على الصور:
ملاحظة: ستحتاج إلى مجموعة من مفاتيح AWS API لمستخدم AWS IAM مع أذونات إعادة الإدراك الكاملة. إعداد هذا هو خارج نطاق هذا readme. لمزيد من المعلومات ، راجع وثائق AWS.
توفر Amazon Web Services (AWS) Elasticsearch كخدمة مُدارة. هذا يجعل من السهل توفير وإدارة مجموعة Elasticsearch.
واحدة من الطرق التي يمكنك من خلالها تأمين الوصول إلى بياناتك في Elasticsearch عند استخدام AWS هو استخدام توقيع الطلب. يتيح توقيع الطلب أن يتم قبول الطلبات الموقعة فقط من قبل نقطة نهاية Elasticsearch. لا يُسمح للطلبات غير الموقعة بالوصول إلى نقطة النهاية.
بمجرد إجراء إعداد Elasticsearch في AWS ، يجب تكوين Moodle لتوقيع الطلب.
على افتراض أنك قد اتبعت بالفعل خطوات التثبيت الأساسية ، لتمكين توقيع الطلب:
يعرض هذا البرنامج المساعد اثنين من خدمات الويب الخاصة بـ AJAX ، للسماح لك بدمج البحث العالمي لـ Moodle مع الأنظمة والخدمات الأخرى. إن الخدمات المتوفرة هما:
يعد إعداد هذه الخدمات وتوثيقها متسقًا مع خدمات الويب الأخرى لـ Moodle Core.
يقوم هذا المكون الإضافي بإعداد خدمة خارجية تم تكوينها مسبقًا تسمى خدمة البحث عند تثبيت المكون الإضافي. تضيف هذه الخدمة وتمكّن طريقتي خدمة الويب التي توفرها هذا البرنامج المساعد.
ملاحظة: ستحتاج إلى إجراء بحث عالمي ومكّن هذا البرنامج المساعد وتكوينه بشكل صحيح قبل أن تتمكن من استخدام خدمات الويب المقدمة.
من أجل تشغيل اختبارات وحدة PHP لهذا البرنامج المساعد ، تحتاج إلى إعداد وتكوين مثيل Elasticsearch كما هو الحال مع توفير تفاصيل المثيل إلى Moodle. تحتاج إلى تحديد:
لتحديد المتغيرات المطلوبة في ملف تكوين Moodle الخاص بك ، أضف ما يلي إلى config.php :
define('TEST_SEARCH_ELASTIC_HOSTNAME', 'http://127.0.0.1');
define('TEST_SEARCH_ELASTIC_PORT', 9200);
define('TEST_SEARCH_ELASTIC_INDEX', 'moodle_test_2');
يمكن أيضًا توفير متغيرات تكوين مثيل Elasticserach المطلوبة كمتغيرات بيئة. للقيام بذلك في سطر أوامر Linux:
export TEST_SEARCH_ELASTIC_HOSTNAME=http://127.0.0.1; export TEST_SEARCH_ELASTIC_PORT=9200; export TEST_SEARCH_ELASTIC_INDEX=moodle_test
أولاً قم بتهيئة بيئة الاختبار ، من الدليل المنزلي في رمز Moodle: php admin/tool/phpunit/cli/init.php لتشغيل اختبارات الإضافات هذه فقط: vendor/bin/phpunit search_elastic_engine_testcase search/engine/elastic/tests/engine_test.php
تم تطوير هذا البرنامج المساعد بواسطة Catalyst It Australia:
https://www.catalyst-au.net/

المشكلات ، وسحب الطلبات باستخدام Github موضع ترحيب وتشجيع!
https://github.com/catalyst/moodle-search_elastic/issues
إذا كنت ترغب في الدعم التجاري أو ترغب في رعاية تحسينات إضافية على هذا البرنامج المساعد ، فيرجى الاتصال بنا:
https://www.catalyst-au.net/contact-us