검색을 하면 해당 내용에 제일 많이 매칭되는 내용(가장 유사한 것)을 찾아내고 상세검색 같은 기능도 ES를 통해 구현 가능
예시로 네이버에 블로그 글을 올렸다고 하면 이 블로그가 검색이 될 때까지 원래는 시간이 필요했다.
검색 엔진에서 데이터를 수집하고 결과에 대한 출력으로 나올대까지가 시간이 걸렸기 때문.
ES는 거의 실시간으로 저장 검색이 가능하게 한다.
ES가 추구하는 시간은 1초 (1초 내로는 검색엔진에 노출이 되게끔)
Splunk vs ELK Stack
둘 다 최고의 Enterprise 솔루션
5.x 버전부터는 고가의 장비와 사용하지 않는 다수의 부가 서비스를 포함한 splunk를 상당부분 대체하기 시작
splunk는 비용이 많이 들지만 Elastic은 무료
ex) John이라는 text는 doc1과 doc2에서 볼 수 있고 database라는 text는 doc1과 doc3에서 볼 수 있다.
es는 이 텍스트들을 인덱싱해서 인덱스라는 DB에 저장한다.
Elasticsearch 자료 구조
Elasticsearch vs RDB
OS별 elasticsearch 지원 버전 확인
위의 링크를 통해 설치 가능한 ES를 확인할 수 있다.
# 실습 환경 Ubuntu 18.04 LTS
# jdk가 반드시 설치되어 있어야 한다.
sudo apt-get update
sudo apt-get install openjdk-8-jdk
https://www.elastic.co/downloads/elasticsearch -> 링크 접속
elasticsearch curl ERROR 트러블 슈팅 -> 참고
이전 버전을 설치하는 이유는 최신 버전으로 받았을 시 계속 (52) Empty reply from server 에러가 뜨기 때문이다.
다운로드 버튼에 우클릭 -> 링크주소 복사, wget으로 우분투에서 다운
sudo dpkg -i <다운 받은 es 파일 명>
sudo systemctl enable elasticsearch.service
# 아래의 명령어들로 es를 시작하고 끄고 잘 작동하는지 확인할 수 있다.
sudo service elasticsearch start
sudo service elasticsearch stop
# es가 잘 동작하는지 체크
curl -XGET 'localhost:9200'
elastic search를 시작해주지 않으면 curl로 확인했을 때 아래처럼 connection refused가 뜰 것이다.
잘 설치된 것 확인
ES 상태
[Elasticsearch 참고]
Elasticsearch 관련 포스팅은 유튜버 'Minsuk Heo 허민석'님의 영상을 참고하였습니다.