Search
Duplicate

역인덱스란?

: ElasticSearch는 역인덱스 구조를 사용해서 데이터를 저장함
⇒ 역인덱스란 특정 단어에 대해서 해시테이블 형태로 매핑하는 것

저장하고자 하는 문장 형태

ID
문장
1
아버지가 방에 들어가신다.
2
아버지가 안방에 들어가신다.
3
어머니가 방에 들어가신다.
4
동생이 방에 들어갔다.
5
라면 좀 끓여줘

ElasticSearch

단어
ID
단어
ID
아버지
1,2
동생
4
어머니
1
라면
5
1,2,3,4
들어
1,2,3,4
5

RDBMS

ID
문장
1
아버지가 방에 들어가신다.
2
아버지가 안방에 들어가신다.
3
어머니가 방에 들어가신다.
4
동생이 방에 들어갔다.
5
라면 좀 끓여줘
MySQL이나 오라클같은 관계형 데이터베이스에서는 보이는 그대로 저장
이 경우 아버지, 동생과 같은 특정 문장에 포함되는 단어를 찾기 위해선 각 ID의 행 내의 모든 데이터를 읽는 불필요한 연산이 발생하여 속도가 느려짐
이를 보완하고자 ElasticSearch는 가운데 형태로 단어 기반 문장의 인덱스 테이블을 구성, 이를 통해 역인덱스가 존재하면 해당 문장들을 빠르게 가져올 수 있음
역인덱스의 경우, 결국 단어를 분리해내어야하므로 텍스트 분석이 사용됨