最详细【Elasticsearch】Elasticsearch Java API + Spring Boot集成 实战入门(基础篇)-一、初始Elasticseach

时间:2024-11-06 07:19:41

1、什么是Elasticseach

Elasticseach是一款非常强大的开源搜索引擎,可以帮助我们从海量数据中快速找到需要的内容。结合 kibana 、 Logstash 、 Beats ,也就是 elastic stack ( ELK )。被广泛应用在日志数据分析、实时监控等领域。

2、Elasticsearch生态

在这里插入图片描述
Elasticsearch 生态系统非常丰富,包含了一系列工具和功能,帮助用户处理、分析和可视化数据,Elastic Stack 是其核心组成部分。

Elastic Stack(也称为 ELK Stack)由以下几部分组成:

  • Elasticsearch:核心搜索引擎,负责存储、索引和搜索数据。
  • Kibana:可视化平台,用于查询、分析和展示 Elasticsearch 中的数据。
  • Logstash:数据处理管道,负责数据收集、过滤、增强和传输到 Elasticsearch。
  • Beats:轻量级的数据传输工具,收集和发送数据到 Logstash 或 Elasticsearch。

Kibana 是 Elastic Stack 的可视化组件,允许用户通过图表、地图和仪表盘来展示存储在 Elasticsearch 中的数据。它提供了简单的查询接口、数据分析和实时监控功能

2、Elasticsearch结构

Elasticsearch采用倒排索引,相比mysql的正向索引提高了查询效率。
在这里插入图片描述

倒排索引过程

  1. 首先进行分词得到词条。
  2. 倒排根据词条列表查找id查询文档。
  3. 最后存放结果集。

正向和倒排索引的区别

正向是根据文档找词条,倒排是根据词条找文档。

3、Elasticsearch核心概念

  • 索引(Index):类似于数据库中的表。

  • 文档(Document):索引中的每条记录,类似于数据库中的行数据。文档以JSON格式存储。

  • 字段(Field):文档中的每个键值对,类似于数据库中的列

  • 映射(Mapping):用于定义文档字段的数据类型以及其处理方式,类似于表结构

  • 集群(Cluster):多个节点组成的群集,用于存储数据并提供搜索功能。集群中的每个节点都可以处理数据。

  • 分片(Shard):为了实现横向扩展,ES 将索引拆分成多个分片,每个分片可以分布在不同节点上。

  • 副本(Replica):分片的复制品,用于提高可用性和容错性。

    和数据库类比:

    Elasticsearch 概念 关系型数据库类比
    Index Table
    Document Row
    Field Column
    Mapping Schema
    Shard Partition
    Replica Backup

4、Elasticsearch 实现全文检索的原理

  1. 分词
  2. 倒排索引(根据分词去词表查询文档Id,然后再根据文档Id去查询文档)