반응형
주요 용어
- 색인(indexing) : 데이터가 검색될 수 있는 구조로 변경하기 위해 원본 문서를 검색어 토큰들로 변환하여 저장하는 일련의 과정
- 인덱스(index, indices) : 색인 과정을 거친 결과물 또는 색인된 데이터가 저장되는 저장소
- 도큐먼트(document) : 단일 데이터 단위
- 검색(search) : 인덱스에 들어있는 검색어 코튼들을 포함하고 있는 문서를 찾아가는 과정
- 질의(Query) : 사용자가 원하는 문서를 찾거나 집계 결과를 출력하기 위해 검색 시 입력하는 검색어 또는 검색 조건
- 샤드(Shards) : 인덱스를 쪼게는 단위
- 매핑(Mapping) : 도큐먼트 내부 데이터명. RDB의 칼럼 개념
- 디스커버리(Discovery) : 노드가 처음 실행 될 때 같은 서버 또는 임의로 설정된 네트워크 상의 다른 노드들을 찾아 하나의 클러스터로 바인딩하는 과정
엘라스틱처치는
- Apach Lucene 기반 (Written in Java)
- 자바로 개발되어있 때문에 자바 실행이 가능한 환경이라면 어디서든 구동이 가능
- inverted index 구조로 데이터 저장
- RDBMS와 반대 구조
- 텍스트를 파싱해서 검색어 사전을 만든 다음에 inverted index 방식으로 텍스트를 저장
- 텍스트 처리과정
1) 대소문자 변환
2) 토큰 재정렬(보통 ascii 순서로)
3) 불용어(stopwords, 검색어로서의 가치가 없는 단어들) 제거. a, an, be, the, to 등
4) 토큰 병합 (e.g. jumping, jumps가 jump로 병합)
5) 동의어 처리 (e.g. fast 7 quick) - 검색 과정
- 검색어도 동일하게 텍스트 처리를 하여 검색
- 일반적으로 맵리듀스 처리 방법을 이용해 액션을 수행한다.
- 엘라스틱서치 노드에는 두 가지 중요한 노드가 있다.
- Data Node
- 데이터를 저장하며 색인된 도큐먼트를 저장한 색인 샤드를 포함한다.
- Non-data Node (결정권자)
- Rest 응답을 비롯한 그 밖의 모든 검색 작업을 처리
- 일반적으로 엘라스틱서치는 맵리듀스 처리 방법을 이용하여 액션을 처리한다.
- 기본 샤드에 액션을 분산하고, 최종 응답을 보낼 수 있도록 샤드 결과 수집/집계(리듀스)를 책임진다.
- 패싯(facet), 집계, 캐싱 같은 작업을 하기 위해 많은 양의 RAM을 사용할 수 있다.
- Data Node
Protocol
엘라스틱서치는 여러 프로토콜을 제공한다. 애플리케이션의 용도에 따라 적당한 프로토콜을 사용한다.
1) HTTP
- 타입 : 텍스트
- 장점 : 자주 사용되며 ES 버전간 호환성
- 단점 : HTTP 오버헤드
2) Native
- 주로 노드 간의 저수준 통신에 쓰인다. 큰 데이터 블록을 빠르게 가져올 때 유용
- 타입 : 바이너리
- 장점 : 빠른 네트워크 계층. 대규모 색인 작업에 최적
- 단점 : ES 버전간 호환 X
3) Thrift
- 타입 : 바이너리
- 장점 : 쓰리프트 플러그인에 따름
- 단점 : 바이너리
반응형
'개발' 카테고리의 다른 글
Elasticsearch #3 (0) | 2020.06.07 |
---|---|
Elasticsearch #2 (0) | 2020.06.07 |
리눅스 포트 확인 (0) | 2020.06.06 |
유니온파인드 (0) | 2019.07.20 |
[기하] 회전하는 캘리퍼스 (Rotating calipers) (0) | 2019.07.20 |