ElasticSearch의 역색인이란?

역색인(Inverted index)


문서에 번호가 지정된 것이 아니라 단어마다 어느 문서에 들어가 있는지 기록해 놓는 방법이다.

문서번호 단어
1 바나나 먹는 원숭이
2 사과 먹는 원숭이

일반적인 색인 방식


단어 문서번호
바나나 1
사과 2
먹는 1, 2
원숭이 1, 2

역색인 방식


역색인의 장점


빠른 검색

색인 구조를 가진 RDBMS의 경우 처음부터 끝까지 읽어야만 검색된 내용이 포함된 결과를 알 수 있다.

하지만 역색인 구조는 해당 단어만 찾으면 단어가 포함된 위치를 바로 알 수 있으므로 검색이 빠르다.

데이터가 늘어나도 속도 저하가 적다

데이터가 늘어날 경우 검색해야 하는 행이 늘어나는 것이 아니라 역 인덱스가 가리키는 번호의 배열값이 추가되기 때문에 속도 저하가 덜하다.


역색인 구조의 저장과정


  1. 문서의 토큰화

    문서를 역색인으로 저장할 수 있게 각각의 토큰으로 바꿔준다.

  2. 토큰화된 단어를 역색인 table에 저장한다.

Discussion and feedback