[ElasticSearch 검색 엔진] 핵심 개념 정리 (1)
[ ElasticSearch 기본 개념 ]

"ElasticSearch"
: Elastic Stack의 중심이며 검색 엔진으로 Elastic Stack에서 가장 중요한 역할을 하고 있다.
모든 데이터를 색인하여 저장하고 검색, 집계 등을 수행하며 결과를 클라이언트나 다른 프로그램으로 전달하여 동작하게 한다.
Elastic Stack이란..?
: 아파치의 검색 라이브러리인 루씬의 한계를 보완하기 위하 만든 오픈소스 검색엔진이다.
ElasticSearch가 Logstash, Kibana와 함께 사용되면서 ELK Stack이라는 이름으로 알려졌다가 Elastic Stack이라고 정식 명명함.
ElasticSearch 특징
- 자바로 개발된 오픈 소스 (https://github.com/elastic)
- Elasticsearch 클러스터가 실행되고 있는 동안에는 계속해서 데이터가 입력되고, 실시간에 가까운 속도로 색인된 데이터의 검색이 가능하다.
- Full Text 검색 엔진 (역파일 색인 구조로 데이터를 저장하고 가공된 텍스트를 검색한다.)
- RESTFul API
- 멀티테넌시: 서로 다른 인덱스들을 별도의 커넥션 없이 하나의 질의로 묶어 검색하고 검색 결과들을 하나의 출력으로 도출할 수 있는 특징
Logstash, Kibana 그리고 Beats
Elastic Stack을 구성하고 있는 ELK 각각의 역할
Elasticsearch는 데이터를 수집하고 저장하는 역할을 담당하고 Logstash는 데이터 처리를 담당하며 Kibana는 데이터를 시각화하는 역할을 한다. Logstash는 부피가 크고 실행하는 데에 자원을 많이 필요로하는 단점이 있었는데 그를 보완하기 위한 Beats를 Elastic에 합류시켜 경량 데이터 수집기 역할을 한다.
Logstash는 Elasticsearch외에도 다양한 경로의 출력이 가능하기 때문에 Redis의 데이터를 Kafka로 전송하는 경우 등과 같이 독자적으로 사용되기도 한다.
Elasticsearch 시작하기
Elasticsearch에서 사용되는 주요 용어 정리
- 색인 (indexing): 데이터가 검색될 수 있는 구조로 변경하기 위해 원본 문서를 검색어 토큰들로 변환하여 저장하는 일련의 과정
- 인덱스 (index, indices): 색인된 데이터가 저장되는 저장소(Elasticsearch)에서 도큐먼트들의 논리적인 집합을 표현하는 단위
- 검색 (search): 인덱스에 들어있는 검색어 토큰들을 포함하는 문서를 찾는 과정
- 질의 (query): 사용자가 원하는 문서를 찾기 위하여 검색 시 입력하는 검색어(검색 조건)
Elasticsearch 설치, 실행하기
Elasticsearch를 홈페이지에서 우선 다운받아야 한다.
https://www.elastic.co/kr/elasticsearch/
Elasticsearch: 공식 분산형 검색 및 분석 엔진 | Elastic
Elasticsearch는 속도, 수평적 확장성, 안정성 및 간편한 관리를 위해 설계된 선도적인 분산형 RESTful 무료 오픈 소스 검색 및 분석 엔진입니다. 무료로 시작하세요.
www.elastic.co
OS별로 Package managers별로 지원하고 있으니 편한 방식을 찾아서 설치하면 된다.
실행하기
$ bin/elasticsearch -d
-d: elasticsearch를 백그라운드 데몬으로 실행하는 명령어
종료하기
ps 명령으로 백그라운드로 실행중인 Elasticsearch 프로세스를 검색
$ ps -ef | grep elasticsearch
백그라운드로 실행 중인 프로세스를 종료하기 위한 kill 명령어 사용
$ kill (아까 검색한 프로세스 ID)
Elasticsearch를 실행한 후 localhost:9200에 접속하면 elasticsearch에 접근할 수 있다.
elasticsearch 실행 환경에 관련된 설정들은 elasticsearch.yml 파일에 저장되어 있고 이 파일을 수정하면 설정을 변경할 수 있다.