본문 바로가기
ELK

Elasticsearch 정리

by SSaMKJ 2017. 8. 8.

Elasticsearch 정리



검색엔진으로 루씬(Lucene)기반이며 JVM위에서 동작한다.

Elasticsearch 과 RDBS 비교

 
 
RDBS  : 데이타베이스 > 테이블 > Row > column > Schema
ES :  인덱스 > 타입 > Document > Field > Mapping

REST API 방식을 사용하기 때문에
http://localhost:9200/books/computer/java  라는 url구조를 가지고 있으면 

books : index
computer :  type
java : document

와 매핑된다.

Elasticsearch 분산 


클러스터를 주키퍼로 한다. 주키퍼는 분산 환경 프레임워크이다.

Elasticsearch 파일 저장


세그먼트 -> 데이터를 추가하면 디스크에 세그먼트 단위로 저장을 한다. 그리고 그 것이 쌓이면 머지를 시켜서 하나의 색인(Index)로 만들어 준다.

노드 > 색인들의 집합. 주로 서버 1대를 의미한다.

클러스터 > 여러개의 노드들을 모아서 클러스터를 구성한다.

Elasticsearch 사드와 리플리카

샤드 > 데이터가 많을 때 그 것을 횡으로 잘라 놓은 것이 샤드이다.
리플리카 > 샤드의 복제본.

Elasticsearch 포트 : 


9200 : 외부 통신용,
9300 : 노드들 끼리 통신용.

Elasticsearch 설정

node.data = true/false => 데이터를 저장하거나 핸들링한다
node.master = true/false => 클러스터 관리를 한다.

둘다 false 이면 통신 역할만 한다. 다른 노드들과 연결을 시켜주는 것이다.

node.master를 여러 대 둘 수 있다. 둘다 같이 하다가 하나가 죽으면 다른 애들이 마스터 역할을 하므로 서비스가 안정적이다. 


Elasticsearch 랭킹


검색 스코어

검색어가 문서내에 얼마나 자주 등장하나
필드에 가중치를 줄 수 있다.
문서 가중치 - document 가 가중치를 가지고 있다. 

루씬의 기본 검색 스코어 

TF(Term Frequency): 단어 빈도 - 키워드가 많이 일치할수록 문서 점수가 높아진다.
IDF(Inverse Document Frequency): 문서 역빈도 - 일치되는 키워드가 드물수록 문서 점수가 높아진다.(다른 문서에는 이 키워드가 별로 없다)
norm: 문서 길이 가중치 - 문서의 길이가 짧을 수록 문서 점수가 높아진다.
필드에 대한 중요도가 높을수록 문서 점수가 높아진다.

BM25 검색 스코어

TF 의 가중치를 낮춘다.
IDF 의 가중치를 높힌다.
norm 의 가중치를 낮춘다.

Elasticsearch Facet

RDBS의 그룹바이의 개념이다.

Elasticsearch Aggregations

Facet 된 것을 Bucket 이라고 하는데, Bucket 단위로 집계를 낼 수 있다.


'ELK' 카테고리의 다른 글

[kibana]dateFormat tip  (12) 2016.10.13

댓글