Этот плагин позволяет 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 для подробных инструкций или для получения подробной информации о том, как установить в других операционных системах.
ПРИМЕЧАНИЕ. Приведенные ниже инструкции должны использоваться только для тестовых и разработчиков. Не делайте этого в производстве. Для настройки производства мы рекомендуем 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:
Чтобы использовать Elastic Cloud для предоставления услуги 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 для поддержки индексации файлов. Тика анализирует файлы, извлекает текст и возвращает его через 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 (AWS) [Service Service (https://aws.amazon.com/rekognition/), чтобы определить содержимое изображений. Идентифицированный контент затем проиндексируется Elasticsearch и можно искать в Moodle (Cool Ahh?).
Примечание. Индексирование файлов по основному глобальному поиску Moodle в настоящее время ограничена только индексацией файлов из нескольких мест. Проблема Tracker MDL-59459 была поднята для увеличения покрытия файлов, индексированных в результате Global Search.
В настоящее время лучший ресурс для тестирования функциональности поиска изображения, поэтому добавьте изображение через файловый ресурс курса Moodle.
После того, как вы настроите Elasticsearch в AWS Moodle, необходимо настроить для распознавания изображений.
Предполагая, что вы уже выполнили базовые шаги установки и шаги индексации файла, чтобы включить распознавание изображений:
Примечание: вам понадобится набор ключей API API для пользователя AWS IAM с полными разрешениями на переоценку. Настройка этого выходит за рамки этого Readme. Для получения дополнительной информации см. Документацию AWS.
Amazon Web Services (AWS) предоставляет Elasticsearch как управляемый сервис. Это позволяет легко предоставить и управлять и Elasticsearch Cluster.
Одним из способов обеспечения доступа к своим данным в Elasticsearch при использовании AWS является использование подписи запроса. Подписание запроса позволяет принимать только действительные подписанные запросы в конечной точке Elasticsearch. Запросы, которые не имеют знаки, не уполномочены получить доступ к конечной точке.
После того, как вы настроили Elasticsearch в AWS Moodle, необходимо настроить для подписания запроса.
Предполагая, что вы уже следовали основным этапам установки, чтобы включить запрос подписания:
Этот плагин разоблачает два веб -сервиса с поддержкой 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 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