우리가 Elasticsearch의 플러그인은 만들 수 있어도 실제 ES의 코드를 수정하고 배포할 일은 없으리라 생각이 든다. 하지만 그래도 기본적으로 ES를 코드로써 구동시킬 줄 알아야 한다는 생각이 들었다.
이번에는 Intellij에서 ES를 Debug로 구동하고, Nori 플러그인을 설치해 보자
여기서는 7.13 버전을 기준으로 한다.
git clone https://github.com/elastic/elasticsearch.git
git checkout -t 7.13
Elasticsearch 7.13
을 띄우기 위해서는 JDK 15 버전이 필요하다.
다른 예제를 보면 터미널에서 gradlew를 통한 명령어로 진행하는데, 그러면 path를 JDK15로 추가해야 한다. (JDK 설치를 Intellij내에서 했기 때문에 ). 기본적으로 사용하는 JDK는 8이나 11인 나로써는 하고 싶지 않은 작업이므로 Intellij내에서 처리하자
Execute Gradle Task 클릭
run --debug-jvm 입력
import 프로젝트에 보면 기본적으로 Debug Elasticsearch
가 만들어져 있다. 해당 옵션을 디버그 모드로 실행하자.
아무런 로그가 출력되질 않는다.
Debug Elasticsearch가 기동중인 상태로 추가로 디버그 모드로 기동해 보자
빌드중
크롬의 Elasticsearch Head로 확인한다.
이때 접속을 하려고 하면 ID / PASSWORD를 묻는데 고정값으로 다음과 같이 입력한다.
id: elastic-admin
pwd: elastic-password
명령어 확인 _cluster/stats
디버그 옵션이 제대로 된것을 확인했다면 이제 Nori 플러그인을 설치하자
https://www.elastic.co/guide/en/elasticsearch/plugins/7.13/analysis-nori.html
사이트에서 직접 받는 7.13의 nori plugin은 7.13.4
으로 명시되어 있다. 이상태 그대로 넣으면 버전이 틀리다는 예외가 발생한다. Intellij에서 받은 elasticsearch는 7.13.5
이므로 마이너 버전을 강제로 변경해야한다.
analysis-nori-7.13.4.jar 파일 이름 변경 -> analysis-nori-7.13.5.jar
plugin-descriptor.properties 내용 변경 7.13.4 -> 7.13.5
맥북 M1 기준으로 다음과 같은 위치에 넣는다. (OS에 따라 다름)
# 폴더 생성
mkdir ${PROEJCT_DIR}/elasticsearch/distribution/archives/darwin-aarch64-tar/build/install/elasticsearch-7.13.5-SNAPSHOT/plugins/analysis-nori
# 파일 복사
LICENSE.txt
NOTICE.txt
analysis-nori-7.13.5.jar
lucene-analyzers-nori-8.8.2.jar
plugin-descriptor.properties