Elastic Search

엘라스틱 서치에서의 역인덱싱

kidmillionaire1998 2023. 2. 14. 00:01

역 인덱싱 (Inverted Index)란?

: 엘라스틱 서치에서의 분석기가 문자열을 토큰화하여 이를 인덱싱하는 기법

 

책 뒷면에 있는 색인(찾아보기)를 생각하면 쉽다. 어떠한 단어가 있고, 해당 단어가 전체 책에서 몇 페이지에 있는 지 적혀져있다. 우리가 찾고자하는 단어가 적혀져있는 내용을 보려면, 찾아보기 페이지를 통해 적혀져있는 페이지로 가서 관련 내용을 가서 보면 된다. 

 

책의 찾아보기(색인) 파트

 

엘라스틱 서치에서의 역인데싱 기법

 

위 그림에서 보면 도큐먼트 2개에 검색 되어질 문장 2개가 있고, 분석기를 통해서 토큰화 되고 가공된 문자들이 오른쪽 테이블처럼 역인덱싱되어 저장이 된다. 

 

RDBMS 저장과의 비교 

 

RDBMS의 Like 검색

 

해당 그림에서와 같이 RDBMS에서는 Like 검색을 하게 된다. 그렇기 때문에, 특정 단어 fox를 찾기 위해선, doc1 ~ doc5까지 모든 도큐먼트들에서 fox라는 단어가 포함되어있는 지 여부를 확인해봐야한다. 

 

엘라스틱 서치의 역인덱싱

위 그림에서와 같이 엘라스틱 서치에서 역인덱싱 기법으로 저장된 문자들은, fox라는 특정 단어가 포함되어있는 문서를 검색하기 위해서, fox라는 텀(문자)가 저장되어있는 도큐먼트들을 보고 참조하기만 하면 된다. 

fox가 검색되는 도큐먼트 목록을 바로 확인 가능하다.

이러한 역인덱싱 기법으로 저장이 되기 때문에, 엘라스틱 서치는 훨씬 빠른 검색속도를 가질 수 있는 것이다. 

 

 

출처: 엘라스틱 서치 가이드(김종민님) 

https://esbook.kimjmin.net/06-text-analysis/6.1-indexing-data

 

엘라스틱 스택 개발부터 운영까지 

http://www.yes24.com/Product/Goods/103030516

'Elastic Search' 카테고리의 다른 글

엘라스틱 서치에서의 유사도 점수 (Score)  (0) 2023.02.13