跳至主要內容
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分词
2