프로젝트하면서 사용했던 Elasticsearch 기본적인 사용법을 정리하려고 한다.
학원 선생님이 REST API에 대해 알아두면 좋다고 하셨는데 프로젝트하면서 쓸 수 있어서 좋은 경험이었다.👍👍
기본적으로 필요한 도구 3가지 설치하기.
엘라스틱 서치란 DB에 담겨있는 내용을 색인하여 빠르게 검색해 줄 수 있는 분석엔진이다.
1. Elasticsearch
https://www.elastic.co/kr/elasticsearch/
Elasticsearch: 공식 분산형 검색 및 분석 엔진 | Elastic
Elasticsearch는 속도, 수평적 확장성, 안정성 및 간편한 관리를 위해 설계된 선도적인 분산형 RESTful 무료 오픈 소스 검색 및 분석 엔진입니다. 무료로 시작하세요.
www.elastic.co
2. Logstash
https://www.elastic.co/kr/logstash
Logstash: 로그 수집, 구문 분석, 변환 | Elastic
Logstash(Elastic Stack의 일부)는 이 유연한 오픈 소스 콜렉션, 구문 분석 및 강화 파이프라인으로 모든 소스, 모든 형식의 데이터를 손쉽게 통합합니다. 무료 다운로드.
www.elastic.co
3. Kibana
https://www.elastic.co/kr/kibana
Kibana: 데이터 탐색, 시각화, 발견 | Elastic
무료로 Kibana 또는 전체 Elastic Stack을 다운로드하고 Elastic으로 몇 분 만에 데이터 시각화, 분석, 탐색을 시작하세요.
www.elastic.co
💡 🎅이 세가지를 합쳐서 ELK Stack 이라고 부른다.
(추후 경량의 단일 목적 데이터 수집기 제품군인 Beats를 추가해 Elastic Stack으로 명칭을 확장했다.)
위의 3가지를 모두 설치한다. 나는 C 드라이브에 3가지를 다 풀어줬다.
(C:/program files 밑에 설치하면 돌아가지 않는다고 하니 다른 곳에 설치합시다.)
First. 엘라스틱 설치 서버구동
엘라스틱서치 배치파일을 실행해 서버가 구동되게 해주자.


한글 검색을 위해 nori 형태소 분석기도 설치한다.
- 형태소 분석기의 종류와 설치 방법이다.
https://esbook.kimjmin.net/06-text-analysis/6.7-stemming/6.7.2-nori
6.7.2 노리 (nori) 한글 형태소 분석기 - Elastic 가이드북
커뮤니티 한글 형태소 분석기 - 아리랑, 은전한닢, Open Korean Text
esbook.kimjmin.net
💡 elasticsearch-plugin install analysis-nori

- 제거는 elasticsearch-plugin remove analysis-nori
그리고 인터넷 창에 로컬주소를 치면 본 화면이 나온다. 그렇다면 엘라스틱 서치를 실행할 준비는 됐다.
서버에 정상적으로 접근.
💡 http://localhost:9200/

Second. elasticsearch에서 사용할 index 만들어주기

kibana 배치파일을 실행해준다. 시간이 좀 걸리기 때문에 처음에 [warning] 이 나와도 당황하지 말고 기다려보자.

이 화면이 나오면 현재 설치된 엘라스틱서치와 키바나가 연결되어 키바나 서버를 이용 할 수 있는 것.
잘 연결이 되었는지 확인해보면
💡 http://localhost:5601/

잘 작동이 되고 있다는 것을 확인할 수 있다.
로딩 된 후 상단에 Dev tools를 클릭 해 Console로 들어온다. 이제 Console에서 모든 명령어를 입력 할 수있다. (GET, POST, DELETE, PUT)
! 시작하기 전 이 페이지에서 도움을 많이 받았다. (엘라스틱서치 가이드북 저자 김종민님)
http://kimjmin.net/2019/08/2019-08-how-to-analyze-korean/
Elasticsearch 에서 한글 형태소 분석 잘 해보기 - Jongmin's Lifelog
요즘 서울시 지하철 대시보드를 다시 만들고 있습니다. 아래는 녹화한 첫 번째 영상입니다. 공공데이터로부터 추출, 색인, 매핑 및 템플릿 설정 부분까지 진행했는데 이번 블로그에서 다루는 내
kimjmin.net
참고로 노리 매핑에서 많이 헤맸는데, 그건 공식 가이드북을 참고해서 내가 원하는 형태로 매핑을 할 수 있었다.
https://esbook.kimjmin.net/06-text-analysis/6.7-stemming/6.7.2-nori
6.7.2 노리 (nori) 한글 형태소 분석기 - Elastic 가이드북
커뮤니티 한글 형태소 분석기 - 아리랑, 은전한닢, Open Korean Text
esbook.kimjmin.net

나는 축제 및 공연 정보를 검색하기 위해 festivals라는 인덱스를 생성해서 축제 개최지 주소(addr1,addr2)와 타이틀(title)에만 적용했다.
- 결과

원래 대전광역시까지 제대로 검색해야 결과가 나왔는데, 이젠 대전까지만 검색해도 잘 나온다.
(감격. 아 너무 오래걸렸어.. 박수😂👏)
Third. DB에 있는 데이터들을 logstash를 이용해 엘라스틱서치 서버에 넣어주자(pipeline잡기)
이후 AWS ES 도메인을 사용하면서 CSV파일을 직접 임포트하는 건 라이센스가 따로 필요했다. 로그스테이시로 데이터를 서버에 넣어두는 법도 알아두려고한다.
💡 C:\logstash-7.11.2\config\logstash-sample.conf
파일을 메모장이나 VScode 등 으로 볼 수 있게끔 열어준다.

설정을 해줬다면 cmd를 켜서 logstash\bin 파일로 경로를 설정해주고 이 명령어를 친다.
💡 .\logstash -r -f "../config/logstash-sample.conf"
error 메세지가 보이지 않으면 잘 들어간 것!
수정 후 DB를 logstash에 넣어주는 명령어를 입력한 뒤 에러메세지가 보이지 않는다면 성공!
GET 방식으로 데이터 확인 해주기
GET festivals/_search
다음 게시글에선 AWS Elasticsearch Service 이용하여 도메인 생성하는 법을 알아보겠습니다.

'개발 공부 > Database' 카테고리의 다른 글
[검색엔진] Elasticsearch와 Spring 연동하기 (0) | 2021.12.31 |
---|---|
[MySQL] 기본 문법 (0) | 2021.12.29 |
[검색엔진] AWS Elasticsearch Service 이용하기 (0) | 2021.12.26 |
[MySQL] 쿼리 연습 (0) | 2021.12.26 |