ปลั๊กอินนี้ช่วยให้ Moodle ใช้ Elasticsearch เป็นเครื่องมือค้นหาสำหรับการค้นหาทั่วโลกของ Moodle
ปลั๊กอินนี้มีคุณสมบัติต่อไปนี้:
ปลั๊กอินนี้รองรับ 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 ปรึกษา DOCUMINTION ELASTICSEARCH สำหรับคำแนะนำในเชิงลึกหรือสำหรับรายละเอียดเกี่ยวกับวิธีการติดตั้งในระบบปฏิบัติการอื่น ๆ
หมายเหตุ: คำแนะนำด้านล่างควรใช้เพื่อการทดสอบและการพัฒนาเท่านั้น อย่าทำสิ่งนี้ในการผลิต สำหรับการตั้งค่าการผลิตเราขอแนะนำให้ Elasticsearch ทำงานเป็นคลัสเตอร์การเริ่มต้นเอกสารการเริ่มต้นสามารถดูได้ที่นี่: https://www.elastic.co/guide/en/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 Parses ไฟล์แยกข้อความและส่งคืนผ่าน API 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 บนโฮสต์ โดยค่าเริ่มต้นบริการ tika มีอยู่ใน: http://localhost:9998
เมื่อบริการ Tika พร้อมใช้งานปลั๊กอิน Elasticsearch ใน Moodle จะต้องได้รับการกำหนดค่าสำหรับการสนับสนุนการจัดทำดัชนีไฟล์
สมมติว่าคุณได้ปฏิบัติตามขั้นตอนการติดตั้งพื้นฐานแล้วเพื่อเปิดใช้งานการสนับสนุนการจัดทำดัชนีไฟล์:
จากเว็บไซต์ Apache Tika:
ชุดเครื่องมือ Apache Tika ™ตรวจจับและแยกข้อมูลเมตาและข้อความจากประเภทไฟล์ที่แตกต่างกันกว่าพันประเภท (เช่น PPT, XLS และ PDF) ประเภทไฟล์เหล่านี้ทั้งหมดสามารถแยกวิเคราะห์ผ่านอินเทอร์เฟซเดียวทำให้ Tika มีประโยชน์สำหรับการจัดทำดัชนีเครื่องมือค้นหาการวิเคราะห์เนื้อหาการแปลและอื่น ๆ อีกมากมาย คุณสามารถค้นหารุ่นล่าสุดในหน้าดาวน์โหลด โปรดดูหน้าการเริ่มต้นใช้งานสำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีเริ่มต้นใช้ Tika
เป็นเรื่องปกติที่จะเห็นการใช้งาน Elasticsearch โดยใช้ปลั๊กอินการจัดทำดัชนีไฟล์ ElasticSearch แทนที่จะเป็นบริการแบบสแตนด์อโลน ปลั๊กอิน ElasticSearch ปัจจุบันเป็นเสื้อคลุมรอบ Tika (เครื่องมือค้นหา Solr ยังใช้ Tika ด้วย)
การใช้ Tika เป็นบริการแบบสแตนด์อโลนมีข้อดีดังต่อไปนี้:
การแยกเนื้อหาจากข้อมูลไบนารีเป็นการดำเนินการอย่างเข้มข้นของทรัพยากรและใช้ทรัพยากรจำนวนมาก ขอแนะนำอย่างยิ่งให้เรียกใช้ท่อโดยใช้โปรเซสเซอร์นี้ในโหนดการบริโภคเฉพาะ
ปลั๊กอินนี้สามารถใช้ Amazon Web Services (AWS) [Rekognition Service (https://aws.amazon.com/rekognition/) เพื่อระบุเนื้อหาของภาพ เนื้อหาที่ระบุจะถูกจัดทำดัชนีโดย Elasticsearch และสามารถค้นหาได้ใน Moodle (Cool Huh?)
หมายเหตุ: การจัดทำดัชนีไฟล์โดย Core Global Search ของ Moodle นั้น จำกัด อยู่ที่การจัดทำดัชนีไฟล์จากสถานที่สองแห่งเท่านั้น ปัญหาตัวติดตาม MDL-59459 ได้รับการยกขึ้นเพื่อเพิ่มความครอบคลุมของไฟล์ที่จัดทำดัชนีโดย Global Search
ขณะนี้ทรัพยากรที่ดีที่สุดในการทดสอบฟังก์ชั่นการค้นหาภาพมันเพิ่มรูปภาพผ่านทรัพยากรไฟล์หลักสูตร Moodle
เมื่อคุณมีการตั้งค่า Elasticsearch ใน AWS Moodle ต้องได้รับการกำหนดค่าสำหรับการจดจำภาพ
สมมติว่าคุณได้ทำตามขั้นตอนการติดตั้งขั้นพื้นฐานและขั้นตอนการจัดทำดัชนีไฟล์เพื่อเปิดใช้งานการจดจำภาพ:
หมายเหตุ: คุณจะต้องใช้ชุดคีย์ AWS API สำหรับผู้ใช้ AWS IAM ที่มีสิทธิ์การรับรู้แบบเต็ม การตั้งค่านี้อยู่นอกเหนือขอบเขตของ readme นี้ สำหรับข้อมูลเพิ่มเติมโปรดดูเอกสาร AWS
Amazon Web Services (AWS) ให้ Elasticsearch เป็นบริการที่มีการจัดการ สิ่งนี้ทำให้ง่ายต่อการจัดหาและจัดการและคลัสเตอร์ Elasticsearch
วิธีหนึ่งที่คุณสามารถเข้าถึงข้อมูลของคุณใน Elasticsearch ได้อย่างปลอดภัยเมื่อใช้ AWS คือการใช้การลงนามในคำขอ การลงนามในคำขออนุญาตเฉพาะคำขอที่ลงนามที่ถูกต้องที่จะได้รับการยอมรับจากจุดสิ้นสุดของ Elasticsearch คำขอที่ไม่ได้ลงนามไม่ได้รับอนุญาตให้เข้าถึงจุดสิ้นสุด
เมื่อคุณมีการตั้งค่า Elasticsearch ใน AWS Moodle ต้องได้รับการกำหนดค่าสำหรับการลงนามคำขอ
สมมติว่าคุณได้ปฏิบัติตามขั้นตอนการติดตั้งขั้นพื้นฐานแล้วเพื่อเปิดใช้งานการลงนามคำขอ:
ปลั๊กอินนี้แสดงให้เห็นว่า WebServices ที่เปิดใช้งาน 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 Code Directory: 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