728x90
1. ElasticSearch 란?
오픈소스 분산 검색 엔진이다.
방대한 양의 데이터를 빠르게 저장, 검색, 분석 가능하여 다음과 같은 사례에 많이 사용된다
- 애플리케이션 검색
- 웹사이트 검색
- 엔터프라이즈 검색
- 로깅과 로그 분석
- 인프라 메트릭과 컨테이너 모니터링
- 애플리케이션 성능 모니터
2. ElasticSearch 사용 이유
1. 빠르다.
2. 분산적이다. (하드웨어 장애 시 데이터 사본 제공 가능)
3. 데이터를 효율적으로 저장하고 검색할 수 있는 기능이 존재한다.
3. ElasticSearch 의 인덱스란?
서로 연관되어있는 문서들의 모음으로 JSON 형태로 저장한다. (key-value 조합으로 되어있음)
Elasticsearch는 역 인덱스(inverted index)라는 데이터 구조를 사용한다.
인덱스 api를 사용해 인덱싱이 시작되며 이를 이용해서 json문서를 업데이트 할 수 있다.
(RDBMS는 SQL문을 사용하지만 elasticsearch는 api로 호출하는 방식(GET,PUT,POST,DELETE))
4. 역 인덱스(inverted index)란?
인덱싱 된 단어를 바탕으로 원하는 내용들은 찾는다.
* 역 인덱스 구조
1. 내용을 토대로 index word를 추출
문서 번호 | 문서 내용 | index word |
text1 | test index error | test, index, error |
text2 | elasticsearch web infra index | elasticserach, web, infra, index |
text3 | index infra api | index, infra, elasticsearch |
2. index word의 갯수를 카운팅 하고 문서 번호와 연결
index word | 갯수 | 문서 번호 |
index | 3 | test1, test2, test3 |
infra | 2 | test2, test3 |
elasticsearch | 2 | test2, test3 |
web | 1 | test2 |
error | 1 | test1 |
test | 1 | test1 |
이 구조가 되면 elasticsearch에 대한 내용을 검색하고자 할 때 어떤 문서를 찾으면 되는지 빠르게 알 수 있다.
4. ElasticSearch의 이해
ElasticSearch를 이해하기 위해서는 익숙한 RDBMS와 비교해 보는것이 좋다.
RDBMS | ElasticSearch |
Database | index |
Table | Type |
Row | Document |
Column | Field |
Primary key | _id |
Schema | Mapping |
Physical parition | Shard |
Logical partition | Route |
Relational | Parent/child |
SQL | Query DSL |
'ETC' 카테고리의 다른 글
[Linux] url 응답 시간 확인 (0) | 2022.10.14 |
---|---|
[Chorme] Mac에서 크롬 자동 업데이트 끄기 (0) | 2022.10.11 |
[MAC] 개발자를 확인할 수 없기 때문에 열 수 없습니다. (0) | 2021.11.04 |
[git] Pull Request (0) | 2021.11.03 |
xcopy 특정 파일, 폴더 제외 (0) | 2019.12.11 |