Compartir tecnología

[Elasticsearch] Explicación detallada del índice invertido de Elasticsearch

2024-07-08

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

📑引言

Elasticsearch es un motor de búsqueda distribuido basado en Lucene, que se utiliza ampliamente en campos como la búsqueda de texto completo, el análisis de registros y el análisis de datos en tiempo real. Su principal ventaja radica en su potente rendimiento de búsqueda, y una de las bases de este rendimiento es el índice invertido. Este artículo presentará en detalle el índice invertido en Elasticsearch para ayudar a los lectores a comprender en profundidad sus principios, estructura y aplicaciones.

imagen.png

1. Introducción al índice invertido

El índice invertido es la estructura de datos central del motor de búsqueda de texto completo. Su función principal es extraer palabras clave de documentos y establecer una relación de mapeo entre palabras clave y documentos. Esta estructura es opuesta al índice directo tradicional (es decir, la asignación de documentos a palabras clave), por lo que se denomina índice invertido.
En el índice invertido, cada palabra clave está asociada con una lista de documentos que contienen esa palabra clave, lo que permite que las operaciones de búsqueda ubiquen rápidamente documentos que contienen palabras clave específicas, mejorando así en gran medida la eficiencia de la consulta.

2. Estructura básica del índice invertido.

La estructura básica del índice invertido incluye las siguientes partes:

  1. Diccionario: Contiene todas las palabras clave que aparecen en el conjunto de documentos.
  2. Lista invertida: Para cada palabra clave, registre la lista de ID del documento que contiene la palabra clave y su información de ubicación en el documento.

Da un ejemplo sencillo:
Digamos que tenemos los siguientes tres documentos:

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

Los pasos para construir un índice invertido son los siguientes:

  1. Tokenización: divida el documento en palabras y realice un procesamiento de normalización (como convertir a minúsculas, eliminar palabras vacías, etc.).
  2. Cree un diccionario: extraiga palabras únicas de todos los documentos.
  3. Crea una lista invertida: registra dónde aparece cada palabra en cada documento.

El resultado es el siguiente: