Mit diesem Plugin kann Moodle Elasticsearch als Suchmaschine für die globale Suche von Moodle verwenden.
Die folgenden Funktionen werden durch dieses Plugin bereitgestellt:
Dieses Plugin unterstützt derzeit Moodle:
| Moodle -Version | Zweig |
|---|---|
| Moodle 4.4 und Up | Moodle_404_Stable |
| Moodle 4.2 bis 4.3 | Moodle_402_Stable |
| Moodle 3.10 bis 4.1 | Moodle_310_Stable |
| Moodle 3.5 bis 3,9 | Master |
Gegenwärtig wird dieses Plugin getestet, um gegen die folgenden Versionen von Elasticsearch zu arbeiten:
Und folgende Version von OpenSearch:
Dieses Plugin wurde getestet, um auf den folgenden Cloud -Plattformen zu arbeiten:
Um dieses Plugin zuerst zu verwenden, müssen Sie einen Elaticsearch -Dienst einrichten.
Das Folgende ist das nötige Minimum, um Elasticsearch in einer Debian/Ubuntu -Betriebssystemumgebung zum Arbeiten zu bringen. Wenden Sie sich an die Elasticsearch -Dokumentation, um eingehende Anweisungen zu erhalten oder Informationen zur Installation in anderen Betriebssystemen zu erhalten.
Hinweis: Die folgenden Anweisungen sollten nur für Test- und Entwicklungszwecke verwendet werden. Mach das nicht in der Produktion. Für ein Produktionssetup empfehlen wir Elasticsearch als Cluster, die Erstedokumentation finden Sie hier: https://www.elastic.co/guide/en/elasticsearch/reference/current/setup.html
Elasticsearch erfordert Java als Voraussetzung, um Java zu installieren:
sudo apt-get install default-jre default-jdkSobald Java installiert ist, werden die folgenden Befehle installiert und starten 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 startEin kurzer Test kann durchgeführt werden, indem Sie Folgendes aus der Befehlszeile ausführen.
curl -X GET 'http://localhost:9200'
Die Ausgabe sollte ungefähr aussehen wie:
{
"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 "
} Standardmäßig ist der Elasticsearch -Dienst verfügbar unter: http://localhost:9200
Sie können Elasticsearch auch mit Docker ausführen. Das Projekt veröffentlicht einen offiziellen Container für unterstützte Versionen mit Anweisungen.
Um dieses Plugin zuerst zu verwenden, müssen Sie einen Elaticsearch -Dienst einrichten.
Um Microsoft Azure zu verwenden, um einen Elasticsearch -Service für Moodle anzubieten:
Elasticsearch erfordert Java als Voraussetzung, um Java zu installieren:
sudo apt-get install default-jre default-jdk
Sobald Java installiert ist, werden die folgenden Befehle installiert und starten 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
Ein kurzer Test kann durchgeführt werden, indem Sie Folgendes aus der Befehlszeile ausführen.
curl -X GET 'http://localhost:9200'
Die Ausgabe sollte ungefähr aussehen wie:
{
"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"
}
Um dieses Plugin zuerst zu verwenden, müssen Sie einen Elaticsearch -Dienst einrichten.
Um Amazon Webservices (AWS) zu verwenden, um einen Elasticsearch -Service für Moodle anzubieten:
Verwenden von Elastic Cloud, um einen Elasticsearch -Service für Moodle zu bieten:
Sobald Sie einen Elasticsearch -Dienst eingerichtet haben, können Sie jetzt das Moodle -Plugin installieren.
Diese Setup -Schritte sind gleich, unabhängig davon, wie Sie den Elasticsearch -Dienst eingerichtet haben.
<moodledir>/search/engine/elasticsudo -u www-data php admin/cli/upgrade Hinweis: Der Benutzer kann sich von www-data in Ihrem System unterscheiden. Sobald Sie einen Elasticsearch -Dienst eingerichtet haben, können Sie jetzt das Moodle -Plugin konfigurieren.
Diese Setup -Schritte sind gleich, unabhängig davon, wie Sie den Elasticsearch -Dienst eingerichtet haben.
sudo -u www-data php search/cli/indexer.php --forceDieses Plugin verwendet Apache Tika für die Unterstützung der Dateiindizierung. Tika spricht Dateien an, extrahiert den Text und gibt ihn über eine REST -API zurück.
Derzeit wird dieses Plugin getestet, um gegen die folgenden Versionen von Tika zu arbeiten:
Das Einrichten eines Tika -Testdienstes ist einfach. In den meisten Fällen in einer Linux -Umgebung können Sie einfach das Java -Glas herunterladen und dann den Service ausführen.
wget http://apache.mirror.amaze.com.au/tika/tika-server-1.16.jar
java -jar tika-server-1.16.jar
Dies wird Tika auf dem Gastgeber beginnen. Standardmäßig ist der Tika -Dienst verfügbar unter: http://localhost:9998
Sobald ein Tika -Dienst verfügbar ist, muss das Elasticsearch -Plugin in Moodle für die Unterstützung der Dateiindizierung konfiguriert werden.
Angenommen, Sie haben bereits die grundlegenden Installationsschritte befolgt, um die Unterstützung der Dateiindizierung zu aktivieren:
Von der Apache Tika -Website:
Das Apache Tika ™ Toolkit erkennt und extrahiert Metadaten und Text von über tausend verschiedenen Dateitypen (wie PPT, XLS und PDF). Alle diese Dateitypen können über eine einzelne Schnittstelle analysiert werden, wodurch Tika für die Suchmaschinenindizierung, die Inhaltsanalyse, die Übersetzung und vieles mehr nützlich ist. Sie finden die neueste Version auf der Download -Seite. Weitere Informationen zur Verwendung von TIKA finden Sie auf der Seite "Erste Schritte".
Es ist üblich, dass Elasticsearch -Implementierungen ein Plugin für Elasticsearch -Datei indexieren, anstatt einen Standing Alone -Service. Aktuelle Elasticsearch -Plugins sind ein Wrapper um Tika. (Die Solr -Suchmaschine verwendet auch Tika).
Die Verwendung von Tika als eigenständiger Dienst hat die folgenden Vorteile:
Das Extrahieren von Inhalten aus binären Daten ist ein ressourcenintensiver Betrieb und verbraucht viele Ressourcen. Es wird dringend empfohlen, Pipelines mit diesem Prozessor in einem dedizierten Einnahmeknoten auszuführen.
Dieses Plugin kann die Amazon Web Services (AWS) [Rekognition Service (https://aws.amazon.com/rekognition/) verwenden, um den Inhalt von Bildern zu identifizieren. Der identifizierte Inhalt wird dann von Elasticsearch indexiert und kann in Moodle (cool huh?) Durchsucht werden.
Hinweis: Die Indizierung von Dateien nach Moodle's Core Global Search ist derzeit nur auf Indizierung von Dateien von einigen Stellen beschränkt. Der Tracker-Problem MDL-59459 wurde angehoben, um die Abdeckung der durch die globalen Suche indizierten Dateien zu erhöhen.
Derzeit die beste Ressource zum Testen der Bildsuche. Fügen Sie also ein Bild über die Moodle -Kursdatei -Ressource hinzu.
Sobald Sie Elasticsearch in AWS in AWS eingerichtet haben, muss Moodle für die Bilderkennung konfiguriert werden.
Angenommen, Sie haben bereits die grundlegenden Installationsschritte und die Dateiindizierungsschritte befolgt, um die Bilderkennung zu aktivieren:
Hinweis: Sie benötigen eine Reihe von AWS -API -Schlüssel für einen AWS -IAM -Benutzer mit vollständigen Rekognitions -Berechtigungen. Das Einrichten ist jenseits des Rahmens dieser Readme. Weitere Informationen finden Sie in der AWS -Dokumentation.
Amazon Web Services (AWS) bietet Elasticsearch als verwalteten Dienst an. Dies erleichtert die Bereitstellung und Verwaltung und Elasticsearch -Cluster.
Eine Art und Weise, wie Sie bei der Verwendung von AWS den Zugriff auf Ihre Daten in Elasticsearch sichern können, besteht darin, die Anfrage zu verwenden. Die Anfrageunterzeichnung ermöglicht es, nur gültige signierte Anfragen vom Elasticsearch -Endpunkt zu akzeptieren. Anfragen, die nicht signiert sind, sind nicht berechtigt, auf den Endpunkt zuzugreifen.
Sobald Sie Elasticsearch in AWS in AWS eingerichtet haben, muss Moodle für Anforderungsunterzeichnung konfiguriert werden.
Angenommen, Sie haben bereits die grundlegenden Installationsschritte befolgt, um die Anfrage zu aktivieren:
Dieses Plugin enthält zwei AJAX -fähige Webservices, mit denen Sie die globale Suche von Moodle in andere Systeme und Dienste integrieren können. Die beiden verfügbaren Webservices sind:
Die Einrichtung und Dokumentation dieser Dienste stimmt mit anderen Moodle Core -Webdiensten zusammen.
Dieses Plugin richtet einen vorkonfigurierten externen Dienst namens Search Service ein, wenn das Plugin installiert ist. Dieser Dienst fügt und ermöglicht die beiden von diesem Plugin bereitgestellten Webservice -Methoden.
Hinweis: Sie müssen globale Suche und dieses Plugin aktiviert und korrekt konfiguriert haben, bevor Sie die bereitgestellten Webdienste verwenden können.
Um die PHP -Unit -Tests für dieses Plugin auszuführen, müssen Sie eine Elasticsearch -Instanz so einrichten und konfigurieren, wie die Instanzdetails an Moodle zu liefern. Sie müssen definieren:
Um die erforderlichen Variablen über Ihre Moodle -Konfigurationsdatei zu definieren, fügen Sie Folgendes zu config.php hinzu:
define('TEST_SEARCH_ELASTIC_HOSTNAME', 'http://127.0.0.1');
define('TEST_SEARCH_ELASTIC_PORT', 9200);
define('TEST_SEARCH_ELASTIC_INDEX', 'moodle_test_2');
Die erforderlichen Konfigurationsvariablen für Elasticserach -Instanz können auch als Umgebungsvariablen bereitgestellt werden. Um dies in der Befehlszeile der Linux zu tun:
export TEST_SEARCH_ELASTIC_HOSTNAME=http://127.0.0.1; export TEST_SEARCH_ELASTIC_PORT=9200; export TEST_SEARCH_ELASTIC_INDEX=moodle_test
Zuerst initialisieren Sie die Testumgebung aus dem Moodle Code Home -Verzeichnis: php admin/tool/phpunit/cli/init.php um nur diese Plugins -Tests auszuführen: vendor/bin/phpunit search_elastic_engine_testcase search/engine/elastic/tests/engine_test.php
Dieses Plugin wurde von Catalyst IT Australia entwickelt:
https://www.catalyyst-au.net/

Probleme, und ziehen Sie Anfragen mit Github willkommen und ermutigt!
https://github.com/catalyyst/moodle-search_elastic/issues
Wenn Sie kommerzielle Unterstützung wünschen oder zusätzliche Verbesserungen an diesem Plugin sponsern möchten, kontaktieren Sie uns bitte:
https://www.catalyyst-au.net/contact-us