Compartilhamento de tecnologia

[Elasticsearch] Explicação detalhada do índice invertido do Elasticsearch

2024-07-08

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

📑引言

Elasticsearch é um mecanismo de pesquisa distribuído baseado em Lucene, amplamente utilizado em áreas como pesquisa de texto completo, análise de log e análise de dados em tempo real. Sua principal vantagem está em seu poderoso desempenho de pesquisa, e uma das bases desse desempenho é o índice invertido. Este artigo apresentará detalhadamente o índice invertido no Elasticsearch para ajudar os leitores a compreender profundamente seus princípios, estrutura e aplicações.

imagem.png

1. Introdução ao índice invertido

O índice invertido é a estrutura de dados central do mecanismo de busca de texto completo. Sua principal função é extrair palavras-chave de documentos e estabelecer uma relação de mapeamento entre palavras-chave e documentos. Essa estrutura é o oposto do índice direto tradicional (ou seja, o mapeamento de documentos para palavras-chave), por isso é chamada de índice invertido.
No índice invertido, cada palavra-chave está associada a uma lista de documentos que contém a palavra-chave, o que permite que as operações de pesquisa localizem rapidamente documentos que contenham palavras-chave específicas, melhorando significativamente a eficiência da consulta.

2. Estrutura básica do índice invertido

A estrutura básica do índice invertido inclui as seguintes partes:

  1. Dicionário: contém todas as palavras-chave que aparecem no conjunto de documentos.
  2. Lista Invertida: para cada palavra-chave, registre a lista de IDs do documento que contém a palavra-chave e suas informações de localização no documento.

Dê um exemplo simples:
Digamos que temos os três documentos a seguir:

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

As etapas para construir um índice invertido são as seguintes:

  1. Tokenização: divida o documento em palavras e execute o processamento de normalização (como conversão para letras minúsculas, remoção de palavras irrelevantes, etc.).
  2. Crie um dicionário: extraia palavras exclusivas de todos os documentos.
  3. Crie uma lista invertida: registre onde cada palavra aparece em cada documento.

O resultado é o seguinte: