Indexing 이란 문서(DOC)들의 내용 중에서 검색하고자 하는 대상들을 쉽고 빠르게 찾을 수 있는 자료구조로 배치하는 것
전통적인 RDBMS 에서는 like 검색을 사용하기 때문에 데이터가 늘어날수록 검색해야 할 대상이 늘어나 시간도 오래 걸리고, row 안의 내용을 모두 읽어야 하기 때문에 기본적으로 속도가 느림.
Elasticsearch는 데이터를 저장할 때 다음과 같이 역 인덱스(inverted index)라는 구조를 만들어 저장
Elasticsearch에서는 추출된 각 키워드를 텀(term) 이라고 부르며 이렇게 Inverted Index가 있으면 term을 포함하고 있는 Documents의 id를 바로 얻어올 수 있다.
이러한 특성 떄문에 Elasticsearch에서는 저장이 아닌 색인(Indexing) 이라고 함.
- Elastic Search는 Lucene 라이브러리를 이용하여 Indexing Data를 Inverted Index Data로 변환
- 변환 완료된 Inverted Index Data는 Lucene 세그먼트 파일로 파일 시스템에 저장된다.
Elasticsearch 관련 글)
https://jw92.tistory.com/5 설치 및 configuration (기본적인 설정)
https://jw92.tistory.com/6 vm.max_map_count 버그 해결
https://jw92.tistory.com/25 Indexing Process
https://jw92.tistory.com/26 Search Process
https://jw92.tistory.com/27 Indexing 방식 - Inverted Index
https://jw92.tistory.com/34 Indexing 파일 - Segment
'Elasticsearch (엘라스틱서치)' 카테고리의 다른 글
Elasticsearch (엘라스틱서치)의 기본 랭킹 알고리즘 - BM25 (1) | 2024.09.05 |
---|---|
Elasticsearch (엘라스틱서치)의 Indexing 파일 - Segment (0) | 2022.09.13 |
Elasticsearch (엘라스틱서치)의 Search Process (0) | 2022.09.02 |
Elasticsearch (엘라스틱서치)의 Indexing Process (0) | 2022.09.02 |
Elasticsearch (엘라스틱서치) vm.max_map_count 버그 해결 (0) | 2021.04.10 |