Elasticsearch는 Lucene 라이브러리를 기반으로 하는 검색 엔진입니다. 그것은 HTTP 웹 인터페이스와 스키마-없는 JSON 문서를 갖는 분산형, 다중-테넌트-지원 전체-텍스트 검색 엔진을 제공합니다. Elasticsearch는 Java로 개발되었고 소스-사용-가능한 서버 측 공개 라이선스와 Elastic 라이선스에 따라 이중 라이선스가 부여되지만, 다른 부분은 독점 (소스-사용-가능) Elastic 라이선스에 속합니다. 공식 클라이언트는 Java, .NET (C#), PHP, Python, Apache Groovy, Ruby, 및 기타 여러 언어에서 사용 가능합니다. DB-Engines 순위에 따르면, Elasticsearch는 가장 인기 있는 엔터프라이즈 검색 엔진입니다.
Licensing changes
2021년 1월에, Elastic은 버전 7.11부터 Elasticsearch와 Kibana에서 Apache 2.0 라이선스 코드를 다시 라이선스하여 서버 측 공용 라이선스와 Elastic 라이선스에 따라 이중 라이선스를 부여할 것이라고 발표했으며, 둘 중 어떤 것도 오픈-소스 라이선스로 인식되지 않습니다. Elastic은 Elasticsearch와 Kibana를 소비자에게 직접 서비스로 제공하는 AWS에 반대하고 AWS가 Elastic과 적절하게 협력하지 않는다고 주장하면서 이러한 변경에 대해 Amazon Web Services (AWS)를 비난했습니다. 재라이선스 결정에 대한 비평가들은 이것이 Elastic의 생태계에 해를 끼칠 것이라고 예측했고 Elastic이 이전에 "결코....Elasticsearch, Kibana, Beats, 및 Logstash의 Apache 2.0 코드 라이선스를 변경하지 않겠다"라고 약속했다고 언급했습니다. Amazon은 Apache License 2.0에 따라 프로젝트를 포크하고 계속 개발할 계획으로 응답했습니다. Logz.io, CrateDB, 및 Aiven을 비롯한 ElasticSearch 에코시스템의 다른 사용자들도 포크의 필요성에 동의하여, 오픈 소스 노력을 조정하는 방법에 대한 논의로 이어졌습니다. "Elasticsearch"라는 이름을 사용할 때 발생할 수 있는 상표 문제로 인해 AWS는 2021년 4월에 포크의 브랜드를 "OpenSearch"로 변경했습니다.
OpenSearch는 2021년 5월에 첫 번째 베타 버전을 출시했었고 2021년 7월에 첫 번째 안정 버전을 출시했습니다.
Installation
ElasticSearch는 미디어위키에서 Extension:Elastica, Extension:CirrusSearch를 설치하기 위해서는 반드시 설치해야 할 프로그램입니다. 미디어위키 1.33.x 부터 ElasticSearch 6.5.x 버전을 지원한다고 최근에 알려졌습니다. 어쨌든, 6.5.4 버전에서 잘 작동하지 않기 때문에, 6.x의 가장 최신 버전을 설치해서 운영할 필요가 있습니다. 이 부분은 이 위키에만 한정적일 수 있으므로, 보다 일반적인 경우에 대해 적절한 방법인지는 의문입니다.
데비안 저장소에 패키지가 없으므로, 개발 회사에서 직접 설치해야 합니다.
- wget -qO - https://packages.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
- sudo apt install apt-transport-https uuid-runtime pwgen openjdk-8-jre-headless
- echo "deb https://artifacts.elastic.co/packages/6.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-6.x.list
- sudo apt update
- sudo apt install elasticsearch
- sudo systemctl start elasticsearch
이전 버전에서 JAVA_HOME 환경 변수를 지정할 필요가 없었지만, 이번 버전부터는 가능하면 설정하는 것이 좋겠습니다.
- sudo nano /etc/default/elasticsearch
JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
PID_DIR=/run/elasticsearch
#ES_JAVA_OPTS="-Xms300m -Xmx300m" # 메모리 점유량
페도라는 /etc/sysconfig/elasticsearch 파일에서 수정할 수 있습니다.
설정에서 다음 3개 정도는 수정하는 것이 좋겠습니다.
- /etc/elasticsearch/elasticsearch.yml
cluster.name: DawoumWiki_ElasticSearch
node.name: DawoumWiki_node-1
network.host: localhost # 외부에서 접근하지 않을 때에 설정.
Download and install the Debian package manually
미디어위키 개발 버전 1.40.0-wmf.1 부터는 업그레이드가 필요할 전망입니다. 하지만, 라이선스의 변경으로 인해, 위키피디아는 고정된 7.10.2 버전을 이용할 전망입니다. 그러나, 개인 사용자는 저장소에서 7.x 최신 버전을 이용해도 상관없을 것으로 보이지만, 상업적으로 이용할 경우에는 라이선스를 확인하십시오. 어쨌든, 만약 특정 버전을 직접 받아서 설치하려면, 다음 과정으로 진행하십시오:
- wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.10.2-amd64.deb
- wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.10.2-amd64.deb.sha512
- shasum -a 512 -c elasticsearch-7.10.2-amd64.deb.sha512
- sudo dpkg -i elasticsearch-7.10.2-amd64.deb
다음 업데이트에서는 다른 프로그램으로 대체될 것으로 예상되고, 7.10.2에서 분기된 OpenSearch가 논의되고 있지만, 결정된 사항은 아닙니다.
Troubleshootings
Version change
7.17 버전에서 7.10.2로 변경하기 위해서, 단순히 프로그램을 해당 버전으로 설치한다고 동작하지 않습니다. 이전 데이터, 즉, /var/lib/elasticsearch/ 디렉토리를 삭제하고 새롭게 인덱스를 만들어야 합니다.
systemd 메시지
/usr/lib/tmpfiles.d/elasticsearch.conf 파일에서 다음을 수정하라는 메시지가 나옵니다:
- /var/run/elasticsearch → /run/elasticsearch
Key is stored in legacy trusted.gpg keyring
Apache_Cassandra#Troubleshootings를 참조하십시오.