Elasticsearch (엘라스틱서치)

Elasticsearch (엘라스틱서치)의 Indexing 방식 - Inverted Index

jw92 2022. 9. 2. 14:08

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