본문 바로가기

ELK 스택/Elasticsearch

[Elasticsearch] Plugin 설치 및 적용

반응형

이번 포스팅은 엘라스틱서치 플러그인 사용과

실제 검색 시 적용되는 예제에 관한 포스팅입니다.

 

 

 

"이미지 검색에 관한 검색엔진을 만드는 데 사용하는 벡터 검색 플러그인"

 

 

1. 적용 할 플러그인 검색

- 이번 벡터 검색에 사용 할 엘라스틱 검색 플러그인

https://github.com/lior-k/fast-elasticsearch-vector-scoring

 

lior-k/fast-elasticsearch-vector-scoring

Score documents using embedding-vectors dot-product or cosine-similarity with ES Lucene engine - lior-k/fast-elasticsearch-vector-scoring

github.com

- embedding-vector를 기반으로 하는 엘라스틱 문서에 코사인 유사도 검색을 사용하여 검색할 수 있게 하는 플러그인

- 엘라스틱 버전에 따라 브런치들이 따로 있으니 해당 버전에 맞는 브런치를 git clone 받아야함

 

 

2. 플러그인 사용 튜토리얼

[ Trouble Shooting ] 

- $ git clone https://github.com/lior-k/fast-elasticsearch-vector-scoring

- 처음에 위와 같은 방식으로 git clone을 받음

- 특정 브런치를 다운 받지 않아 기본 버전인 5.6.9가 다운 받아짐

- 버전에 맞는 플러그인을 다운로드 하려면 브런치를 지정해야함

 

 

1> 7.5.0 버전으로 엘라스틱 플러그인 깃 클론 진행

# 깃이 설치되어 있지 않다면 깃 설치
$ apt install git

# 아래와 같이 브런치 지정해서 깃 클론 진행
git clone -b es-7.5.0 https://github.com/lior-k/fast-elasticsearch-vector-scoring.git

 

[ Trouble Shooting ] 

- 엘라스틱 & 플러그인의 버전에러

- 현재 설치되어있는 엘라스틱 버전은 7.5.1이고 다운 받은 플러그인은 7.5.0버전이여서 플러그인 설치 시 에러 발생

- 0.0.1 버전이 안맞아서 벡터 검색 플러그인을 사용 할 수 없다는 사실에 절망 후, 엘라스틱 다운그레이드를 고려함

- 현재 구성한 엘라스틱 서버가 마스터1, 데이터2인데 3개의 서버를 다운그레이드를 하는 건 절망적이라 다른 방법을 찾아봄

- 아래와 같이 깃 Issue에서 희망을 발견

- 누군가 7.2.1 버전이 필요해서 new branch를 만들었다고 함. (크게 어렵지 않음을 말함)

- 위 질문과 답을 보고 희망을 얻어, 두 버전의 파일을 모두 열어 변경 된 부분을 찾아다님

- 정말 너무 간단하게도 다른 코드는 다 같고 pom.xml의 버전만 변경해주면 되는 문제!

 

2> pom.xml 파일 수정

# 해당 폴더로 접근
$ cd fast-elasticsearch-vector-scoring

# 설정 파일로 접근
$ vi /fast-elasticsearch-vector-scoring/pom.xml

- 위 파일에 들어가서 7.5.0으로 되어있는 버전을 원하는 버전으로 변경해주면 됨(7.5.1)

- 2곳을 변경하면 끝!

 

3> 패키지 생성

# mvn이 없을 경우 설치
$ apt install mvn

# 패키지 생성
$ mvn package

- mvn package 명령어는 pom.xml이 있는 곳에서 해야함

- 위 2 명령어 입력 후 에는 폴더와 파일들이 생성 됨

- .zip 파일 위치 : /fast-elsticsearch-vector-scoring/target/releases/elasticsearch-binary-vector-scoring-7.5.1.zip

- 버전을 보면 원하는 대로 zip파일이 생성 됨을 확인 할 수 있음

Build 성공 화면

 

4> 플러그인 적용

$ cd /usr/share/elasticsearch

- 데비안 패키지로 설치한 엘라스틱의 기본 설정 파일 위치로 이동 : /usr/share/elasticsearch

 

$ bin/elasticsearch-plugin install file:///fast-elasticsearch-vector-scoring/target/releases/elasticsearch-binary-vector-scoring-7.5.1.zip

- 플러그인을 설치 하기 위해 bin/elasticsearch-plugin install 입력

- 바로 옆에 따라서 파일이 존재하는 곳 명시 file://경로/.zip파일

성공적으로 설치 완료

 

5> 엘라스틱 서치 재시작

$ systemctl restart elasticsearch

- 엘라스틱 서치 재시작을 하면 바로 적용이 됨

- 데이터 노드 2곳에 각각 플러그인 설치 완료

반응형