[Elasticsearch] 플러그인 커스텀 방법

HI·2022년 5월 4일
0

1. 공식 elasticsearch 소스 github

https://github.com/elastic/elasticsearch
여기서 plugin 폴더에 소스 있음.
elasticsearch는 gradle로 빌드함.
밑의 lucene 프로젝트로 얻은 jar를 참조하여 새로운 analyzer 만들기 가능.

2. lucene 주소

https://github.com/apache/lucene-solr/tree/releases/lucene-solr/8.11.0/lucene/analysis
common, core, plugin 등에 필요한 소스 찾아씀.
Build : ant
gradle이나 maven으로 dependencies하면 받아지는 jar 들 lucene-core-8.10.1.jar 이런애들이 다운받아지는데
이 lucene-core-8.10.1.jar를 수정하려면 이 lucene의 프로젝트의 소스를 수정하여 ant 빌드하여야 한다.
예시>
hamcrest-core-1.3.jar
junit-4.13.1.jar
lucene-analyzers-common-8.7.0.jar
lucene-codes-8.7.0.jar
lucene-core-8.7.0.jar
kucene-test-framework-8.7.0
randomizedtesting-runner-2.7.2.jar

#git에 elasticsearch의 소스랑 apache소스가 있는데 elasticsearch의 소스는 elasticsearch에서 lucene을 기반으로 개발한 plugin들
apache는 lucene 내부 jar의 소스이다.
예를 들어
elasticsearch의 nori/NoriReadingFormFilterFactory 클래스가 있는데 TokenStream create 부분에 KoreanReadingFormFilter 클래스는
apache의 import org.apache.lucene.analysis.ko.KoreanReadingFormFilter; lucene-analyzers-nori-8.10.1.jar 에서 가져온 클래스를 사용한것
저 jar를 import하면 어느 project에서든지 KoreanReadingFormFilter쓸 수 있음.
즉 lucene을 기반으로 만든 elasticsearch 라는 말이
lucene의 클래스들을 사용한것.
그래서 고쳐야할 부분에 따라 elasticsearch 소스를 수정할 것인지, lucene을 수정할 것 인지 확인해야함.

#lucene 공식 주소 class 목록들
https://lucene.apache.org/core/7_4_0/analyzers-nori/index.html

#nori를 이해하기 위한 lucene, elasticsearch 관련 설명
https://gritmind.blog/2020/07/22/nori_deep_dive/#1.1.

profile
hi

0개의 댓글