이 플러그인을 사용하면 Moodle은 Elasticsearch를 Moodle 's Global Search의 검색 엔진으로 사용할 수 있습니다.
이 플러그인에서 다음과 같은 기능이 제공됩니다.
이 플러그인은 현재 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 서비스를 설정해야합니다.
다음은 Debian/Ubuntu 운영 체제 환경에서 Elasticsearch가 작동하도록하는 최소입니다. 심도있는 지침 또는 다른 운영 체제에 설치하는 방법에 대한 자세한 내용은 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 서비스를 설정해야합니다.
AWS (Amazon Webservices)를 사용하여 Moodle에 대한 Elasticsearch 서비스를 제공합니다.
탄성 구름을 사용하여 Moodle에 대한 Elasticsearch 서비스를 제공합니다.
Elasticsearch 서비스를 설정하면 이제 Moodle 플러그인을 설치할 수 있습니다.
이 설정 단계는 Elasticsearch Service를 설정하는 방법에 관계없이 동일합니다.
<moodledir>/search/engine/elasticsudo -u www-data php admin/cli/upgrade 참고 : 사용자는 시스템의 www-data와 다를 수 있습니다. Elasticsearch 서비스를 설정하면 이제 Moodle 플러그인을 구성 할 수 있습니다.
이 설정 단계는 Elasticsearch Service를 설정하는 방법에 관계없이 동일합니다.
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를 시작합니다. 기본적으로 Tika 서비스는 http://localhost:9998 에서 사용할 수 있습니다
Tika 서비스가 제공되면 Moodle의 Elasticsearch 플러그인을 파일 인덱싱 지원을 위해 구성해야합니다.
파일 인덱싱 지원을 활성화하기 위해 이미 기본 설치 단계를 따랐다 고 가정합니다.
Apache Tika 웹 사이트에서 :
Apache Tika ™ 툴킷은 수천 가지가 넘는 다른 파일 유형 (예 : PPT, XL 및 PDF)에서 메타 데이터 및 텍스트를 감지하고 추출합니다. 이러한 모든 파일 유형은 단일 인터페이스를 통해 구문 분석 할 수 있으므로 Tika는 검색 엔진 인덱싱, 컨텐츠 분석, 번역 등에 유용합니다. 다운로드 페이지에서 최신 릴리스를 찾을 수 있습니다. Tika 사용을 시작하는 방법에 대한 자세한 내용은 시작 페이지를 참조하십시오.
독립형 서비스가 아닌 Elasticsearch 파일 인덱싱 플러그인을 사용하여 Elasticsearch 구현을 보는 것이 일반적입니다. 현재 Elasticsearch 플러그인은 Tika 주변의 래퍼입니다. (Solr 검색 엔진도 Tika를 사용합니다).
Tika를 독립형 서비스로 사용하면 다음과 같은 장점이 있습니다.
이진 데이터에서 내용을 추출하는 것은 리소스 집중 작업이며 많은 리소스를 소비합니다. 전용 수집 노드 에서이 프로세서를 사용하여 파이프 라인을 실행하는 것이 좋습니다.
이 플러그인은 Amazon Web Services (AWS) [Rekognition Service (https://aws.amazon.com/rekognition/)를 사용하여 이미지의 내용을 식별 할 수 있습니다. 식별 된 내용은 Elasticsearch에 의해 인덱싱되고 Moodle (Cool Huh?)에서 검색 할 수 있습니다.
참고 : Moodle의 Core Global Search의 파일 인덱싱은 현재 두 곳에서 파일을 인덱싱하는 것으로 제한됩니다. 추적기 문제 MDL-59459가 전역 검색에서 색인화 된 파일의 적용 범위를 늘리기 위해 제기되었습니다.
현재 이미지 검색 기능을 테스트하는 데 사용하기에 가장 적합한 리소스이므로 Moodle 코스 파일 리소스를 통해 이미지를 추가하십시오.
AWS Moodle에서 ElasticSearch를 설정하면 이미지 인식을 위해 구성해야합니다.
이미지 인식을 활성화하기 위해 기본 설치 단계와 파일 인덱싱 단계를 이미 따랐다 고 가정합니다.
참고 : 완전한 재 인식 권한이있는 AWS IAM 사용자를위한 AWS API 키 세트가 필요합니다. 이것을 설정하는 것은이 readme의 범위를 벗어납니다. 자세한 내용은 AWS 문서를 참조하십시오.
Amazon Web Services (AWS)는 관리 서비스로서 Elasticsearch를 제공합니다. 이를 통해 프로비저닝 및 관리 및 Elasticsearch 클러스터가 쉽습니다.
AWS를 사용할 때 Elasticsearch에서 데이터에 액세스 할 수있는 방법 중 하나는 요청 서명을 사용하는 것입니다. 요청 서명은 Elasticsearch Endpoint에서 유효한 서명 요청 만 허용 할 수 있습니다. 서명되지 않은 요청은 엔드 포인트에 액세스 할 수있는 권한이 없습니다.
AWS Moodle에서 ElasticSearch를 설정하면 요청 서명을 위해 구성해야합니다.
요청 서명을 활성화하기 위해 이미 기본 설치 단계를 따랐다 고 가정합니다.
이 플러그인은 두 개의 Ajax 활성화 웹 서비스를 노출시켜 Moodle의 글로벌 검색을 다른 시스템 및 서비스와 통합 할 수 있습니다. 사용 가능한 두 웹 서비스는 다음과 같습니다.
이러한 서비스의 설정 및 문서는 다른 Moodle Core 웹 서비스와 관련이 있습니다.
이 플러그인은 플러그인이 설치 될 때 검색 서비스 라는 사전 구성된 외부 서비스를 설정합니다. 이 서비스는이 플러그인에서 제공하는 두 개의 웹 서비스 메소드를 추가하고 활성화합니다.
참고 : 제공된 웹 서비스를 사용하기 전에 글로벌 검색 과이 플러그인을 올바르게 활성화하고 구성해야합니다.
이 플러그인의 PHP 단위 테스트를 실행하려면 인스턴스 세부 정보를 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 Code 홈 디렉토리에서 테스트 환경을 먼저 초기화합니다. 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