기술나눔

[Elasticsearch] Elasticsearch 역인덱스에 대한 자세한 설명

2024-07-08

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

📑引言

Elasticsearch는 전체 텍스트 검색, 로그 분석, 실시간 데이터 분석 등의 분야에서 널리 사용되는 Lucene 기반의 분산 검색 엔진입니다. 핵심적인 장점은 강력한 검색 성능에 있으며, 이러한 성능의 기반 중 하나는 역지수입니다. 이 글에서는 독자들이 Elasticsearch의 역색인에 대한 원리와 구조, 응용에 대한 깊은 이해를 돕기 위해 자세히 소개합니다.

이미지.png

1. 역지수 소개

역색인은 전체 텍스트 검색 엔진의 핵심 데이터 구조로 문서에서 키워드를 추출하고 키워드와 문서 간의 매핑 관계를 구축하는 것이 주요 기능입니다. 이 구조는 전통적인 정방향 인덱스(즉, 문서를 키워드에 매핑)와 반대이므로 역 인덱스라고 합니다.
역색인에서는 각 키워드가 해당 키워드가 포함된 문서 목록과 연결되어 있어 검색 작업에서 특정 키워드가 포함된 문서를 빠르게 찾을 수 있어 쿼리 효율성이 크게 향상됩니다.

2. 역 인덱스의 기본 구조

역 인덱스의 기본 구조는 다음과 같은 부분으로 구성됩니다.

  1. 사전: 문서 세트에 나타나는 모든 키워드를 포함합니다.
  2. 반전된 목록: 각 키워드에 대해 해당 키워드와 해당 위치 정보가 포함된 문서 ID 목록을 문서에 기록합니다.

간단한 예를 들어보세요:
다음 세 가지 문서가 있다고 가정해 보겠습니다.

  • 문서 1:"Elasticsearch is a powerful search engine"
  • 문서 2:"Elasticsearch uses inverted index"
  • 문서 3:"Search engines use indexes"

역 인덱스를 작성하는 단계는 다음과 같습니다.

  1. 토큰화: 문서를 단어로 분할하고 정규화 처리(예: 소문자로 변환, 중지 단어 제거 등)를 수행합니다.
  2. 사전 구축: 모든 문서에서 고유한 단어를 추출합니다.
  3. 반전된 목록을 만듭니다. 각 문서에서 각 단어가 나타나는 위치를 기록합니다.

결과는 다음과 같습니다.