このプラグインを使用すると、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オペレーティングシステム環境で機能させるための最低限です。詳細な指示について、または他のオペレーティングシステムにインストールする方法の詳細については、ElasticSearch Documentionを参照してください。
注:以下の指示は、テストおよび開発目的でのみ使用する必要があります。生産でこれをしないでください。制作セットアップの場合は、elasticsearchをクラスターとして実行することをお勧めします。https://www.elastic.co/guide/en/elasticsearch/reference/current/setup.htmlでドキュメントを入手できます。
ElasticSearchには、Javaをインストールするために、Javaが前提条件として必要です。
sudo apt-get install default-jre default-jdkJavaがインストールされると、次のコマンドが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 Serviceはhttp://localhost:9200で入手できます
Dockerを使用してElasticsearchを実行することもできます。このプロジェクトは、指示を含むサポートされているバージョン用のオフカルコンテナを公開しています。
最初にこのプラグインを使用するには、Elaticsearchサービスをセットアップする必要があります。
Microsoft Azureを使用して、MoodleにElasticSearchサービスを提供するには:
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 WebSvices(AWS)を使用して、MoodleにElasticsearchサービスを提供するには:
Elastic Cloudを使用して、MoodleにElasticSearchサービスを提供するには:
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 APIを介して返品します。
現在、このプラグインは、次のバージョンの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サービスが利用可能になると、ファイルインデックスサポートのためにMoodleのElasticsearchプラグインを構成する必要があります。
ファイルインデックスのサポートを有効にするために、基本的なインストール手順に既に従っていると仮定します。
Apache TikaのWebサイトから:
Apache Tika™ツールキットは、1000を超えるファイルタイプ(PPT、XLS、PDFなど)からメタデータとテキストを検出および抽出します。これらのファイルタイプはすべて、単一のインターフェイスを介して解析でき、Tikaは検索エンジンのインデックス作成、コンテンツ分析、翻訳などに役立ちます。ダウンロードページで最新リリースを見つけることができます。 Tikaの使用方法の詳細については、開始ページをご覧ください。
ElasticSearchファイルインデックスプラグインを使用して、スタンドアロンサービスではなく、ElasticSearchの実装を見るのが一般的です。現在のElasticSearchプラグインは、ティカ周辺のラッパーです。 (SOLR検索エンジンもTikaを使用しています)。
スタンドアロンサービスとしてTikaを使用するには、次の利点があります。
バイナリデータからコンテンツを抽出することはリソース集中的な操作であり、多くのリソースを消費します。専用のインゲストノードでこのプロセッサを使用してパイプラインを実行することを強くお勧めします。
このプラグインは、Amazon Web Services(AWS)[Rekognition Service(https://aws.amazon.com/rekognition/)を使用して、画像の内容を特定できます。識別されたコンテンツは、Elasticsearchによってインデックス化され、Moodle(Cool Huh?)で検索できます。
注: MoodleのCore Global Searchによるファイルのインデックス作成は、現在、いくつかの場所からのインデックスファイルのみに限定されています。 Tracker Issue MDL-59459は、グローバル検索によってインデックス付けされたファイルのカバレッジを増やすために提起されました。
現在、画像検索機能をテストするために使用するのに最適なリソースであるため、Moodleコースファイルリソースを介して画像を追加してください。
AWS MoodleでElasticSearchをセットアップしたら、画像認識のために構成する必要があります。
画像認識を有効にするために、基本的なインストール手順とファイルインデックスの手順に既に従っていると仮定します。
注:完全な再認知権限を備えたAWS IAMユーザーには、AWS APIキーのセットが必要です。これをセットアップすることは、このreadmeの範囲を超えています。詳細については、AWSドキュメントを参照してください。
Amazon Web Services(AWS)は、ElasticSearchをマネージドサービスとして提供します。これにより、クラスターのプロビジョニングと管理、およびElasticsearchが簡単になります。
AWSを使用するときにElasticSearchでデータへのアクセスを確保できる方法の1つは、リクエスト署名を使用することです。リクエスト署名により、有効な署名されたリクエストのみがElasticsearchエンドポイントによって受け入れられることができます。署名されていないリクエストは、エンドポイントにアクセスする権限がありません。
AWS MoodleでElasticSearchをセットアップしたら、リクエスト署名のために構成する必要があります。
リクエストの署名を有効にするために、基本的なインストール手順に既に従っていると仮定します。
このプラグインは、2つのAJAX対応のWebサービスを公開して、Moodleのグローバル検索を他のシステムやサービスと統合できるようにします。利用可能な2つのウェブサービスは次のとおりです。
これらのサービスのセットアップとドキュメントは、他のMoodle Core Webサービスに関連しています。
このプラグインは、プラグインがインストールされたときに、検索サービスと呼ばれる事前に構成された外部サービスをセットアップします。このサービスは、このプラグインによって提供される2つのWebサービスメソッドを追加および有効にします。
注:提供されたWebサービスを使用する前に、グローバル検索とこのプラグインが正しく設定され、正しく構成されている必要があります。
このプラグインのPHPユニットテストを実行するには、Elasticsearchインスタンスを設定して構成する必要があります。あなたは定義する必要があります:
Moodle Configurationファイルを介して必要な変数を定義するには、 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 Home 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