Este complemento permite a Moodle usar Elasticsearch como el motor de búsqueda para la búsqueda global de Moodle.
Este complemento proporciona las siguientes características:
Este complemento actualmente es compatible con Moodle:
| Versión de Moodle | Rama |
|---|---|
| Moodle 4.4 y arriba | Moodle_404_stable |
| Moodle 4.2 a 4.3 | Moodle_402_stable |
| Moodle 3.10 a 4.1 | Moodle_310_stable |
| Moodle 3.5 a 3.9 | maestro |
Actualmente, este complemento se prueba para que funcione con las siguientes versiones de Elasticsearch:
Y la siguiente versión de OpenSearch:
Este complemento ha sido probado para que funcione en las siguientes plataformas en la nube:
Para usar este complemento primero, deberá configurar un servicio ElaticSearch.
El siguiente es el mínimo para que Elasticsearch funcione en un entorno del sistema operativo Debian/Ubuntu. Consulte la documentación de ElasticSearch para obtener instrucciones en profundidad o para obtener detalles sobre cómo instalar en otros sistemas operativos.
Nota: Las instrucciones a continuación solo deben usarse para fines de prueba y desarrollo. No hagas esto en producción. Para una configuración de producción, recomendamos que Elasticsearch se ejecute como un clúster, se puede encontrar documentación de inicio aquí: https://www.elastic.co/guide/en/elasticsearch/reference/current/setup.html
Elasticsearch requiere Java como requisito previo, para instalar Java:
sudo apt-get install default-jre default-jdkUna vez que se instala Java, los siguientes comandos instalarán e iniciarán 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 startSe puede realizar una prueba rápida ejecutando lo siguiente desde la línea de comando.
curl -X GET 'http://localhost:9200'
La salida debe verse algo así como:
{
"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 "
} Por defecto, el servicio Elasticsearch está disponible en: http://localhost:9200
También puede ejecutar Elasticsearch con Docker. El proyecto publica un contenedor oficial para la versión compatible con instrucciones.
Para usar este complemento primero, deberá configurar un servicio ElaticSearch.
Para usar Microsoft Azure para proporcionar un servicio Elasticsearch para Moodle:
Elasticsearch requiere Java como requisito previo, para instalar Java:
sudo apt-get install default-jre default-jdk
Una vez que se instala Java, los siguientes comandos instalarán e iniciarán 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
Se puede realizar una prueba rápida ejecutando lo siguiente desde la línea de comando.
curl -X GET 'http://localhost:9200'
La salida debe verse algo así como:
{
"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"
}
Para usar este complemento primero, deberá configurar un servicio ElaticSearch.
Para usar Amazon WebServices (AWS) para proporcionar un servicio Elasticsearch para Moodle:
Para usar elastic nube para proporcionar un servicio de elasticsearch para Moodle:
Una vez que haya configurado un servicio Elasticsearch, ahora puede instalar el complemento Moodle.
Estos pasos de configuración son los mismos independientemente de cómo haya configurado el servicio Elasticsearch.
<moodledir>/search/engine/elasticsudo -u www-data php admin/cli/upgrade Nota: El usuario puede ser diferente a los datos www en su sistema. Una vez que haya configurado un servicio Elasticsearch, ahora puede configurar el complemento Moodle.
Estos pasos de configuración son los mismos independientemente de cómo haya configurado el servicio Elasticsearch.
sudo -u www-data php search/cli/indexer.php --forceEste complemento utiliza Apache Tika para el soporte de indexación de archivos. Tika analiza archivos, extrae el texto y lo devuelve a través de una API REST.
Actualmente se prueba este complemento para que funcione con las siguientes versiones de Tika:
Configurar un servicio de prueba Tika es sencillo. En la mayoría de los casos en un entorno de Linux, simplemente puede descargar el Java Jar y luego ejecutar el servicio.
wget http://apache.mirror.amaze.com.au/tika/tika-server-1.16.jar
java -jar tika-server-1.16.jar
Esto comenzará a Tika en el anfitrión. Por defecto, el servicio Tika está disponible en: http://localhost:9998
Una vez que hay un servicio Tika disponible, el complemento Elasticsearch en Moodle debe configurarse para el soporte de indexación de archivos.
Suponiendo que ya ha seguido los pasos de instalación básicos, para habilitar el soporte de indexación de archivos:
Del sitio web de Apache Tika:
El kit de herramientas Apache Tika ™ detecta y extrae metadatos y texto de más de mil tipos de archivos diferentes (como PPT, XLS y PDF). Todos estos tipos de archivos se pueden analizar a través de una sola interfaz, lo que hace que Tika sea útil para la indexación de motores de búsqueda, análisis de contenido, traducción y mucho más. Puede encontrar la última versión en la página de descarga. Consulte la página Getting Start para obtener más información sobre cómo comenzar a usar Tika.
Es común ver las implementaciones de ElasticSearch utilizando un complemento de indexación de archivos Elasticsearch en lugar de un servicio independiente. Los complementos actuales de ElasticSearch son un envoltorio alrededor de Tika. (El motor de búsqueda Solr también usa Tika).
El uso de Tika como servicio independiente tiene las siguientes ventajas:
Extraer contenido de datos binarios es una operación intensiva de recursos y consume muchos recursos. Se recomienda ejecutar tuberías utilizando este procesador en un nodo de ingesta dedicado.
Este complemento puede usar Amazon Web Services (AWS) [Rekognition Service (https://aws.amazon.com/rekognition/) para identificar el contenido de las imágenes. El contenido identificado es indexado por ElasticSearch y se puede buscar en Moodle (¿Cool Huh?).
Nota: La indexación de archivos de la búsqueda global principal de Moodle se limita actualmente a la indexación de archivos de un par de lugares. El problema del rastreador MDL-59459 se ha planteado para aumentar la cobertura de los archivos indexados por Global Search.
Actualmente, el mejor recurso para usar para probar la funcionalidad de búsqueda de imágenes, así que agregue una imagen a través del recurso de archivo de curso Moodle.
Una vez que haya configurado ElasticSearch en AWS Moodle, debe configurarse para el reconocimiento de imágenes.
Suponiendo que ya ha seguido los pasos de instalación básicos y los pasos de indexación de archivos, para habilitar el reconocimiento de imágenes:
Nota: Necesitará un conjunto de claves AWS API para un usuario de AWS IAM con permisos de rekognición completas. Configurar esto está más allá del alcance de este readme. Para obtener más información, consulte la documentación de AWS.
Amazon Web Services (AWS) proporciona a Elasticsearch como un servicio administrado. Esto facilita la provisión y gestión y elasticsearch cluster.
Una de las formas en que puede asegurar el acceso a sus datos en Elasticsearch cuando se usa AWS es utilizar la firma de solicitudes. La firma de solicitudes solo las solicitudes firmadas válidas son aceptadas por ElasticSearch Endpoint. Las solicitudes que no están firmadas no están autorizadas para acceder al punto final.
Una vez que haya configurado ElasticSearch en AWS Moodle, debe configurarse para la firma de solicitudes.
Suponiendo que ya ha seguido los pasos de instalación básicos, para habilitar la firma de solicitud:
Este complemento expone dos servicios web habilitados AJAX, para permitirle integrar la búsqueda global de Moodle con otros sistemas y servicios. Los dos servicios web disponibles son:
La configuración y la documentación de estos servicios son connsistentes con otros servicios web de Moodle Core.
Este complemento establece un servicio externo preconfigurado llamado servicio de búsqueda cuando se instala el complemento. Este servicio agrega y habilita los dos métodos de servicio web proporcionados por este complemento.
Nota: Deberá tener una búsqueda global y este complemento habilitado y configurado correctamente antes de poder usar los servicios web proporcionados.
Para ejecutar las pruebas unitarias de PHP para este complemento, debe configurar y configurar una instancia de ElasticSearch como suministrará los detalles de la instancia a Moodle. Necesitas definir:
Para definir las variables requeridas en su archivo de configuración de Moodle, agregue lo siguiente a 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');
Las variables de configuración de instancia de Elasticserach requeridas también se pueden proporcionar como variables de entorno. Para hacer esto en la línea de comandos de Linux:
export TEST_SEARCH_ELASTIC_HOSTNAME=http://127.0.0.1; export TEST_SEARCH_ELASTIC_PORT=9200; export TEST_SEARCH_ELASTIC_INDEX=moodle_test
Primero inicialice el entorno de prueba, desde el directorio de inicio del código Moodle: php admin/tool/phpunit/cli/init.php para ejecutar solo estos complementos Prueba: vendor/bin/phpunit search_elastic_engine_testcase search/engine/elastic/tests/engine_test.php
Este complemento fue desarrollado por Catalyst It Australia:
https://www.catalyst-au.net/

¡Los problemas y las solicitudes de extracción con GitHub son bienvenidas y alentadas!
https://github.com/catalyst/moodle-search_elastic/issues
Si desea soporte comercial o desea patrocinar mejoras adicionales a este complemento, contáctenos:
https://www.catalyst-au.net/contact-us