Elasticsearch 입문·실전 - 3.3. 역인덱스(Inverted Index)란?
- 역인덱스(Inverted Index)는 엘라스틱서치에서 필드 값을 단어 단위로 쪼개어(토큰화) 해당 단어가 포함된 문서 ID 목록을 정리해 놓은 검색 최적화 구조입니다. 📚
- 엘라스틱서치는 데이터를 저장할 때 필드 값을 '토큰'이라는 단어 단위로 분리하고, 각 토큰이 어떤 문서(다큐먼트)에 등장하는지 매핑하여 역인덱스를 생성합니다. ✂️
- '토큰(Token)'은 엘라스틱서치 역인덱스에서 단어 단위로 잘라낸 요소를 지칭하는 핵심 용어입니다. 🏷️
- 역인덱스는 엘라스틱서치 시스템 내부적으로 생성 및 관리되며, 사용자가 직접 표 형태로 확인할 수는 없습니다. ⚙️
- 검색 시, 사용자 쿼리도 토큰으로 분리된 후 역인덱스에서 일치하는 토큰을 찾아 해당 문서 ID를 빠르게 조회합니다. 🔍
- 엘라스틱서치는 검색어와 문서 간의 관련성을 '스코어(Score)'로 측정하며, 일치하는 토큰의 수, 토큰의 희귀성, 문서 길이 등을 기반으로 점수를 매겨 관련성 높은 문서를 우선적으로 정렬합니다. 💯
- 역인덱스 구조 덕분에 단어의 순서가 바뀌어도 검색이 가능하며, 이는 단순히 문서 내에 검색 토큰이 포함되어 있는지 여부만 확인하기 때문입니다. 🔄
- 이러한 역인덱스 기반 검색 작동 방식은 매핑 정의 시 데이터 타입을 '텍스트(text)'로 지정한 필드에만 적용됩니다. 📝
데브허브 | DEVHUB | Elasticsearch 입문·실전 - 3.3. 역인덱스(Inverted Index)란?