跳至主要內容
Elasticsearch 架构

Elasticsearch 架构

存储流程

ES 存储数据的流程可以从三个角度来阐述:

  • 集群的角度来看,数据写入会先路由到主分片,在主分片上写入成功后,会并发写副本分片,最后响应给客户端。
  • 分片的角度来看,数据到达分片后需要对内容进行格式校验、分词处理然后再索引数据。
  • 节点的角度来看,ES 数据持久化的步骤可归纳为:Refresh、写 Translog、Flush、Merge。

钝悟...大约 13 分钟数据库搜索引擎数据库elasticsearch数据库搜索引擎数据库elasticsearch存储索引
Elasticsearch 搜索(上)

Elasticsearch 搜索(上)

搜索简介

Elasticsearch 支持多种搜索:

  • 精确搜索(词项搜索):搜索数值、日期、IP 或字符串的精确值或范围。
  • 全文搜索:搜索非结构化文本数据并查找与查询项最匹配的文档。
  • 向量搜索:存储向量,并使用 ANN 或 KNN 搜索来查找相似的向量,从而支持 语义搜索 等场景。

钝悟...大约 8 分钟数据库搜索引擎数据库elasticsearch数据库搜索引擎数据库elasticsearch搜索
Elasticsearch

Elasticsearch

概述

Elasticsearch 是一个基于 Lucene 的搜索和数据分析工具,它提供了一个分布式服务。Elasticsearch 是遵从 Apache 开源条款的一款开源产品,是当前主流的企业级搜索引擎。


钝悟...大约 1 分钟数据库搜索引擎数据库elasticsearch数据库搜索引擎数据库elasticsearch
Elasticsearch 集群

Elasticsearch 集群

集群

空集群

如果我们启动了一个单独的节点,里面不包含任何的数据和索引,那我们的集群看起来就是一个包含空内容节点的集群。

Figure 1. 包含空内容节点的集群

包含空内容节点的集群
包含空内容节点的集群

钝悟...大约 29 分钟数据库搜索引擎数据库elasticsearch数据库搜索引擎数据库elasticsearch集群分片
ElasticSearch API 之 HighLevelRestClient

ElasticSearch API 之 HighLevelRestClient

Elasticsearch 官方的 High Level REST Client 在 7.1.5.0 版本废弃。所以本文中的 API 不推荐使用。

快速开始

引入依赖

在 pom.xml 中引入以下依赖:

<dependency>
    <groupId>org.elasticsearch.client</groupId>
    <artifactId>elasticsearch-rest-high-level-client</artifactId>
    <version>7.17.1</version>
</dependency>

钝悟...大约 4 分钟数据库搜索引擎数据库elasticsearch数据库搜索引擎数据库elasticsearchAPI
Elasticsearch Mapping

Elasticsearch Mapping

概述

本文介绍了 Elasticsearch 常用的数据类型,以及如何在 Elasticsearch 中通过 Mapping 定义字段的数据类型。


钝悟...大约 17 分钟数据库搜索引擎数据库elasticsearch数据库搜索引擎数据库elasticsearchmapping数据类型
Elasticsearch 文本分析

Elasticsearch 文本分析

概述

Elasticsearch 中存储的数据可以粗略分为:

  • 词项数据 - 采用精确查询。比较两条词项数据是否相对,实际是比较二者的二进制数据,结果只有相等或不相等。
  • 文本数据 - 采用全文搜索。比较两个文本数据是否相等,没有太大意义,一般只会比较二者是否相似。相似性比较,是通过相关性评分来评估的。而计算相关性评分,需要对全文先分词处理,然后对分词后的词项进行统计才能进行相似性评估。

Elasticsearch 文本分析是将非结构化文本转换为一组词项(term)的过程。本文将介绍 Elasticsearch 文本分析的各个关键组件,以及文本分析的处理流程。


钝悟...大约 10 分钟数据库搜索引擎数据库elasticsearch数据库搜索引擎数据库elasticsearch分词
Elasticsearch 存储

Elasticsearch 存储

概述

本文介绍了 Elasticsearch 的逻辑存储、物理存储,以及 Elasticsearch 的倒排索引设计。


钝悟...大约 7 分钟数据库搜索引擎数据库elasticsearch数据库搜索引擎数据库elasticsearch存储索引
Elasticsearch 优化

Elasticsearch 优化

Elasticsearch 是当前流行的企业级搜索引擎,设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。作为一个开箱即用的产品,在生产环境上线之后,我们其实不一定能确保其的性能和稳定性。如何根据实际情况提高服务的性能,其实有很多技巧。这章我们分享从实战经验中总结出来的 elasticsearch 性能优化,主要从硬件配置优化、索引优化设置、查询方面优化、数据结构优化、集群架构优化等方面讲解。

硬件配置优化

升级硬件设备配置一直都是提高服务能力最快速有效的手段,在系统层面能够影响应用性能的一般包括三个因素:CPU、内存和 IO,可以从这三方面进行 ES 的性能优化工作。


钝悟...大约 21 分钟数据库搜索引擎数据库elasticsearch数据库搜索引擎数据库elasticsearch性能
Elasticsearch 聚合

Elasticsearch 聚合

概述

在数据库中,聚合是指将数据进行分组统计,得到一个汇总的结果。例如,计算总和、平均值、最大值或最小值等操作。

Elasticsearch 将聚合分为三类:

类型 说明
Metric(指标聚合) 根据字段值进行统计计算
Bucket(桶聚合) 根据字段值、范围或其他条件进行分组
Pipeline(管道聚合) 对其他聚合输出的结果进行再次聚合

本文将逐一介绍这几种聚合方式的用法和特性。


钝悟...大约 15 分钟数据库搜索引擎数据库elasticsearch数据库搜索引擎数据库elasticsearch聚合指标管道
2