following is a step-by-step guide to setup moodle global search with AWS OpenSearch service. This provides enhanced searching in rich content.
A powerful open-source LMS.
This is a forked version of the popular elastic search which is provided by AWS. This is extended by AWS and available as a service under AWS.
As we start everything from google because of its searching capability, the same we want at many places, especially those which are rich in content.
If the content is not searchable, then it is not visible to user.
Moodle comes with a default DB based search but that is an extra burden over the existing database and not powerful as well.
Along with DB search, moodle is shipped with SOLR, which is also an open-source search engine.
Why AWS openserach instead of SOLR ?
A very powerful search engine and integration code comes with moodle core, however,
1- you will require PHP Solr extension to use this. That might not be directly available on the machine and would not be directly installed. It may require an extension building step then only it can work.
2- you need to set up solr server on a machine. However, there are pretty instructions written, still, monitoring and administration will be a concern over the long run.
Why AWS opensearch ?
[our system is also on AWS, then it is the first choice]
1- Easy to set up and administrator and monitoring.
2- no need for any system based dependency. You just need to install two moodle plugins from moodle admin interface and that’s done.
How to setup AWS open search ?
From the AWS console, just visit OpenSearch service,
- Create a domain
- you can start with dev mode, and t3.small.search with 1-az only for cost perspective
- Under the network, enable public access
- Under fine-grained access, create a master user and password
- Set access policy to “Only Use Fine-grained access control”
And that’s done. In a few minutes, your cluster will be ready and you will get a URL as well.
you can also login on opensearch console by using same username and password to explore more.
How to setup moodle for this.
1- download this plugin from here:
this is a search plugin, compatible with moodle version 3.2+ and it is extended from the existing plugin to support AWS OpenSearch.
2- this plugin requires another plugin for AWS libraries : https://moodle.org/plugins/local_aws
3- once installed, just do configure the search as
- enable global search
- setup default as elastic search
- setup url as : https://<username>:<password>@<url you copy from aws cluster>
- port 443
- index your data and this is done.
For more about moodle global search