초보 개발자의 스터디룸

[Elastic Search] 엘라스틱서치란? 2. 역 색인(Inverted Index)

justdoIT0730 2023. 1. 6. 15:58
728x90
728x90

ES 게시글

1. 역 색인이란?

 - 키워드를 통해 문서를 찾아내는 방식 

 - 색인 : 문서 내 키워드를 확인 용이하도록 정렬/나열한 목록

 

예)

 - 색인 방식

문서 번호 단어
1 사과 먹는 다람쥐
2 딸기 먹는 하마
3 복숭아 먹는 다람쥐
4 바나나 먹는 원숭이
5 딸기 먹는 악어
6 복숭아 먹는 원숭이
7 딸기 먹는 다람쥐
8 복숭아 먹는 악어

 - 역색인 방식

단어 문서 번호
먹는 1, 2, 3, 4, 5, 6, 7, 8
사과 1
딸기 2, 5, 7
복숭아 3, 6, 8
바나나 4
다람쥐 1, 3, 7
하마 2
원숭이 4, 6
악어 5, 8

즉, 문서에 번호가 지정된 것이 아니라 단어마다 어느 문서에 들어가 있는지 기록

 

2. 역 색인의 장/단점

 2.1 장점

  - 필요한 정보만 선택하여 포함된 위치를 검색하여 처리 속도 빠름

  - 문서가 수천만이 넘더라도 키워드가 등장하는 문서의 수가 적다면 엄청나게 빠른 속도로 검색 가능

 

 2.2 단점

  - 대다수 문서에서 등장하는 키워드로 검색 시 속도 저하

  - 예를 들어 영어 문서의 경우 a, the, and 등 자주 사용되는 단어는 인덱스 관리해도 속도가 느림

  - ES에선 자주 사용되는 단어는 Stopword(불용어)로 등록하여 인덱스에서 제거 및 검색어 무시 설정 가능

 

 

3. ES에서 역색인 적용 설명

 - 데이터 저장 전 Analyzer가 데이터를 분석하고 Tokenizer로 필요한 조건에 맞게 키워드를 생성

 - 키워드를 Inverted index에 저장

 - 역 인덱스를 데이터 저장 과정에서 생성 → ES에서는 데이터 입력 시 '저장'이 아닌 '색인'이라고 한다.

 

 

 

[출처]

https://www.skyer9.pe.kr/wordpress/?p=1002 

https://ta-ye.github.io/2021-03-08/Elastic2

https://jiseok-woo.tistory.com/3

https://the-dev.tistory.com/30

728x90
728x90