Plugin ini memungkinkan Moodle untuk menggunakan Elasticsearch sebagai mesin pencari untuk pencarian global Moodle.
Fitur berikut disediakan oleh plugin ini:
Plugin ini saat ini mendukung Moodle:
| Versi Moodle | Cabang |
|---|---|
| Moodle 4.4 ke atas | Moodle_404_stable |
| Moodle 4.2 hingga 4.3 | Moodle_402_stable |
| Moodle 3.10 hingga 4.1 | Moodle_310_stable |
| Moodle 3.5 hingga 3.9 | menguasai |
Saat ini, plugin ini diuji untuk bekerja terhadap versi Elasticsearch berikut:
Dan versi OpenSearch berikut:
Plugin ini telah diuji untuk bekerja pada platform cloud berikut:
Untuk menggunakan plugin ini terlebih dahulu, Anda perlu menyiapkan layanan ELATICSEARCH.
Berikut ini adalah minimum untuk membuat Elasticsearch bekerja di lingkungan sistem operasi Debian/Ubuntu. Konsultasikan dengan dokumen Elasticsearch untuk instruksi mendalam, atau untuk perincian tentang cara menginstal pada sistem operasi lainnya.
CATATAN: Instruksi di bawah ini hanya boleh digunakan untuk tujuan pengujian dan dev. Jangan lakukan ini dalam produksi. Untuk pengaturan produksi, kami merekomendasikan Elasticsearch berjalan sebagai cluster, memulai dokumentasi dapat ditemukan di sini: https://www.elastic.co/guide/en/elasticsearch/reference/current/setup.html
Elasticsearch mengharuskan Java sebagai prasyarat, untuk menginstal Java:
sudo apt-get install default-jre default-jdkSetelah Java diinstal, perintah berikut akan menginstal dan memulai 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 startTes cepat dapat dilakukan dengan menjalankan yang berikut dari baris perintah.
curl -X GET 'http://localhost:9200'
Output seharusnya terlihat seperti:
{
"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 "
} Secara default Layanan Elasticsearch tersedia di: http://localhost:9200
Anda juga dapat menjalankan Elasticsearch dengan Docker. Proyek ini menerbitkan wadah resmi untuk versi yang didukung dengan instruksi.
Untuk menggunakan plugin ini terlebih dahulu, Anda perlu menyiapkan layanan ELATICSEARCH.
Untuk menggunakan Microsoft Azure untuk menyediakan layanan Elasticsearch untuk Moodle:
Elasticsearch mengharuskan Java sebagai prasyarat, untuk menginstal Java:
sudo apt-get install default-jre default-jdk
Setelah Java diinstal, perintah berikut akan menginstal dan memulai 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
Tes cepat dapat dilakukan dengan menjalankan yang berikut dari baris perintah.
curl -X GET 'http://localhost:9200'
Output seharusnya terlihat seperti:
{
"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"
}
Untuk menggunakan plugin ini terlebih dahulu, Anda perlu menyiapkan layanan ELATICSEARCH.
Untuk menggunakan Amazon WebServices (AWS) untuk menyediakan layanan Elasticsearch untuk Moodle:
Untuk menggunakan elastis elastis untuk menyediakan layanan Elasticsearch untuk Moodle:
Setelah Anda mengatur layanan Elasticsearch, Anda sekarang dapat menginstal plugin Moodle.
Langkah -langkah pengaturan ini sama terlepas dari bagaimana Anda telah mengatur layanan Elasticsearch.
<moodledir>/search/engine/elasticsudo -u www-data php admin/cli/upgrade Catatan: Pengguna mungkin berbeda dengan www-data pada sistem Anda. Setelah Anda mengatur layanan Elasticsearch, Anda sekarang dapat mengkonfigurasi plugin Moodle.
Langkah -langkah pengaturan ini sama terlepas dari bagaimana Anda telah mengatur layanan Elasticsearch.
sudo -u www-data php search/cli/indexer.php --forcePlugin ini menggunakan Apache Tika untuk dukungan pengindeksan file. Tika parses file, mengekstrak teks, dan mengembalikannya melalui API REST.
Saat ini plugin ini diuji untuk bekerja terhadap versi Tika berikut:
Menyiapkan Layanan Uji Tika lurus ke depan. Dalam kebanyakan kasus di lingkungan Linux, Anda dapat mengunduh Java Jar kemudian menjalankan layanan.
wget http://apache.mirror.amaze.com.au/tika/tika-server-1.16.jar
java -jar tika-server-1.16.jar
Ini akan memulai Tika pada tuan rumah. Secara default Layanan Tika tersedia di: http://localhost:9998
Setelah layanan TIKA tersedia, plugin Elasticsearch di Moodle perlu dikonfigurasi untuk dukungan pengindeksan file.
Dengan asumsi Anda telah mengikuti langkah -langkah instalasi dasar, untuk mengaktifkan dukungan pengindeksan file:
Dari situs web Apache Tika:
Toolkit Apache Tika ™ mendeteksi dan mengekstrak metadata dan teks dari lebih dari seribu jenis file yang berbeda (seperti PPT, XLS, dan PDF). Semua jenis file ini dapat diuraikan melalui antarmuka tunggal, membuat Tika berguna untuk pengindeksan mesin pencari, analisis konten, terjemahan, dan banyak lagi. Anda dapat menemukan rilis terbaru di halaman unduhan. Silakan lihat halaman memulai untuk informasi lebih lanjut tentang cara mulai menggunakan Tika.
Adalah umum untuk melihat implementasi Elasticsearch menggunakan plugin pengindeksan file Elasticsearch daripada layanan yang berdiri sendiri. Plugin Elasticsearch saat ini adalah pembungkus di sekitar Tika. (Mesin pencari Solr juga menggunakan Tika).
Menggunakan Tika sebagai layanan mandiri memiliki keunggulan berikut:
Mengekstraksi konten dari data biner adalah operasi intensif sumber daya dan mengkonsumsi banyak sumber daya. Sangat disarankan untuk menjalankan jalur pipa menggunakan prosesor ini dalam node konstan khusus.
Plugin ini dapat menggunakan Amazon Web Services (AWS) [Layanan Rekognition (https://aws.amazon.com/rekognition/) untuk mengidentifikasi konten gambar. Konten yang diidentifikasi kemudian diindeks oleh Elasticsearch dan dapat dicari di Moodle (keren ya?).
Catatan: Pengindeksan file oleh pencarian inti Global Moodle saat ini terbatas hanya untuk mengindeks file dari beberapa tempat. Masalah pelacak MDL-59459 telah dinaikkan untuk meningkatkan cakupan file yang diindeks oleh pencarian global.
Saat ini sumber daya terbaik untuk digunakan untuk menguji fungsionalitas pencarian gambar, jadi tambahkan gambar melalui sumber daya file kursus Moodle.
Setelah Anda menyiapkan Elasticsearch di AWS Moodle perlu dikonfigurasi untuk pengenalan gambar.
Dengan asumsi Anda telah mengikuti langkah -langkah instalasi dasar dan langkah -langkah pengindeksan file, untuk mengaktifkan pengenalan gambar:
Catatan: Anda akan memerlukan satu set kunci API AWS untuk pengguna AWS IAM dengan izin Rekognisi penuh. Menyiapkan ini berada di luar ruang lingkup readme ini. Untuk informasi lebih lanjut, lihat dokumentasi AWS.
Amazon Web Services (AWS) memberikan Elasticsearch sebagai layanan yang dikelola. Ini membuatnya mudah untuk menyediakan dan mengelola dan mengelompokkan elastis.
Salah satu cara Anda dapat mengamankan akses ke data Anda di Elasticsearch saat menggunakan AWS adalah dengan menggunakan penandatanganan permintaan. Penandatanganan Permintaan hanya memungkinkan permintaan yang ditandatangani valid untuk diterima oleh titik akhir Elasticsearch. Permintaan yang tidak ditandatangani tidak berwenang untuk mengakses titik akhir.
Setelah Anda menyiapkan Elasticsearch di AWS Moodle perlu dikonfigurasi untuk penandatanganan permintaan.
Dengan asumsi Anda telah mengikuti langkah -langkah instalasi dasar, untuk mengaktifkan penandatanganan permintaan:
Plugin ini memperlihatkan dua layanan web yang diaktifkan AJAX, untuk memungkinkan Anda mengintegrasikan pencarian global Moodle dengan sistem dan layanan lain. Dua layanan web yang tersedia adalah:
Pengaturan dan dokumentasi layanan ini berkaitan dengan layanan Web Core Moodle lainnya.
Plugin ini mengatur layanan eksternal yang dikonfigurasi sebelumnya yang disebut layanan pencarian saat plugin diinstal. Layanan ini menambah dan memungkinkan dua metode layanan web yang disediakan oleh plugin ini.
Catatan: Anda harus melakukan pencarian global dan plugin ini diaktifkan dan dikonfigurasi dengan benar sebelum Anda dapat menggunakan layanan web yang disediakan.
Untuk menjalankan tes unit PHP untuk plugin ini, Anda perlu mengatur dan mengonfigurasi instance Elasticsearch seperti yang akan memasok detail instance ke Moodle. Anda perlu mendefinisikan:
Untuk menentukan variabel yang diperlukan melalui file konfigurasi moodle Anda, tambahkan yang berikut ini ke 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');
Variabel konfigurasi instance Elasticserach yang diperlukan juga dapat disediakan sebagai variabel lingkungan. Untuk melakukan ini di baris perintah Linux:
export TEST_SEARCH_ELASTIC_HOSTNAME=http://127.0.0.1; export TEST_SEARCH_ELASTIC_PORT=9200; export TEST_SEARCH_ELASTIC_INDEX=moodle_test
Pertama inisialisasi lingkungan uji, dari Direktori Home Kode Moodle: php admin/tool/phpunit/cli/init.php untuk menjalankan hanya tes plugin ini: vendor/bin/phpunit search_elastic_engine_testcase search/engine/elastic/tests/engine_test.php
Plugin ini dikembangkan oleh Catalyst It Australia:
https://www.catalyst-au.net/

Masalah, dan tarik permintaan menggunakan GitHub dipersilakan dan didorong!
https://github.com/catalyst/moodle-search_elastic/issues
Jika Anda ingin dukungan komersial atau ingin mensponsori perbaikan tambahan untuk plugin ini, silakan hubungi kami:
https://www.catalyst-au.net/contact-us