【搜索引擎】ElasticSearch 7.x版本

1 Elasticsearch概述

1.1 Elasticsearch是什么

1.2 全文搜索引擎

1.3 Elasticsearch And Solr

1.4 Elasticsearch Or Solr

1.5 Elasticsearch应用案例

2 Elassticsearch入门

2.1 Elasticsearch 安装

2.1.1 下载软件

2.1.2 安装软件

2.1.3 问题解决

2.2 Elasticsearch基本操作

2.2.1 RESTful

2.2.2 客户端安装

2.2.3 数据格式

2.2.4 HTTP 操作

2.2.4.1 索引操作
2.2.4.2 文档操作
2.2.4.3 映射操作
2.2.4.4 高级查询

2.2.5 Java API 操作

Elasticsearch 软件是由 Java 语言开发的,所以也可以通过 Java API 的方式对 Elasticsearch

服务进行访问

2.2.5.1 创建 Maven 项目

我们在 IDEA 开发工具中创建 Maven 项目(模块也可)ES

2.2.5.2 客户端对象

创建com.atguigu.es.test.Elasticsearch01_Client类,代码中创建Elasticsearch客户端对象因为早期版本的客户端对象已经不再推荐使用,且在未来版本中会被删除,所以这里我们采用高级REST客户端对象

2.2.5.3 索引操作
2.2.5.4 文档操作
2.2.5.5 高级查询
2.2.5.5.1 请求体查询
2.2.5.5.2 高亮查询
2.2.5.5.3 聚合查询

3 Elasticsearch环境

3.1 相关概念

3.1.1 单机&集群

3.1.2 集群Cluster

3.1.3 节点Node

3.2 Windows集群

3.2.1 部署集群

3.2.2 启动集群

3.2.3 测试集群

3.3Linux单机

3.3.1 软件下载

3.3.2 软件安装

3.3.3 启动软件

3.3.4 测试软件

浏览器中输入地址:http://linux1:9200/

3.4 Linux集群

3.4.1 软件下载

3.4.2 软件安装

3.4.3 启动软件

3.4.4 测试集群

4 Elasticsearch进阶

4.1 核心概念

4.1.1 索引(Index)

4.1.2 类型(Type)

4.1.3 文档(Document)

4.1.4 字段(Field)

相当于是数据表的字段,对文档数据根据不同属性进行的分类标识。

4.1.5 映射(Mapping)

4.1.6 分片(Shards)

4.1.7 副本(Replicas)

4.1.8 分配(Allocation)

4.2 系统架构

4.3 分布式集群

4.3.1 单节点集群

4.3.2故障转移

4.3.3 水平扩容

4.3.4 应对故障

4.4 路由计算

4.5 分片控制

4.5.1 写流程

4.5.2 读流程

4.5.3 更新流程

部分更新一个文档结合了先前说明的读取和写入流程:

4.5.4 多文档操作流程

4.6 分片原理

4.6.1 倒排索引

4.6.2 文档搜索

4.6.3 动态更新索引

4.6.4 近实时搜索

4.6.5 持久化变更

4.6.6 段合并

4.7 文档分析

4.7.1 内置分析器

4.7.2 分析器使用场景

4.7.3 测试分析器

4.7.4 指定分析器

4.7.5 IK分词器

4.7.6 自定义分析器

4.8 文档处理

4.8.1 文档冲突

4.8.2 乐观并发控制

4.8.3 外部系统版本控制

4.9 Kibana

5 Elasticsearch集成

5.1 Spring Data框集成

5.1.1 Spring Data框架介绍

5.1.2 Spring Data Elasticsearch介绍

5.1.3 Spring Data Elasticsearch 版本对比

5.1.4 框架集成

5.2 Spark Streaming框架集成

5.2.1 Spark Streaming框架介绍

5.2.2 框架集成

5.3.2 框架集成

6 Elasticsearch优化

6.1 硬件选择

6.2 分片策略

6.2.1 合理设置分片数

6.2.2 推迟分片分配

6.3 路由选择

6.4 写入速度优化

6.4.1 批量数据提交

6.4.2 优化存储设备

6.4.3 合理使用合并

6.4.4 减少 Refresh 的次数

6.4.5 加大 Flush 设置

6.4.6 减少副本的数量

6.5 内存设置

6.6 重要配置

7 Elasticsearch面试题

7.1 为什么要使用 Elasticsearch?

7.2 Elasticsearch 的 master 选举流程?

7.3 Elasticsearch 集群脑裂问题?

7.4 Elasticsearch 索引文档的流程?

7.5 Elasticsearch 更新和删除文档的流程?

7.6 Elasticsearch 搜索的流程?

7.7 Elasticsearch 在部署时,对 Linux 的设置有哪些优化方法?

7.8 GC 方面,在使用 Elasticsearch 时要注意什么?

7.9 Elasticsearch 对于大数据量(上亿量级)的聚合如何实现?

7.10 在并发情况下,Elasticsearch 如果保证读写一致?

7.11 如何监控 Elasticsearch 集群状态?

7.12 是否了解字典树?

7.13 Elasticsearch 中的集群、节点、索引、文档、类型是什么?

7.14 Elasticsearch 中的倒排索引是什么?

倒排索引是搜索引擎的核心。搜索引擎的主要目标是在查找发生搜索条件的文档时提供快速搜索。ES中的倒排索引其实就是lucene的倒排索引,区别于传统的正向索引,倒排索引会再存储数据时将关键词和数据进行关联,保存到倒排表中,然后查询时,将查询内容进行分词后在倒排表中进行查询,最后匹配数据即可。

相关推荐
Elastic 中国社区官方博客15 分钟前
用于 IntelliJ IDEA 的新 ES|QL 插件
java·大数据·数据库·ide·elasticsearch·搜索引擎·intellij-idea
大志哥1232 小时前
整理安装ES和Logstash
大数据·elasticsearch·搜索引擎
Slow菜鸟2 小时前
Git Worktree 使用教程
大数据·git·elasticsearch
大气层煮月亮20 小时前
RAG 检索技术 - Elasticsearch
大数据·elasticsearch·搜索引擎
Dontla1 天前
异步知识库索引管线:与在线问答链路解耦架构介绍(离线构建,在线查询)分层索引、Elasticsearch
elasticsearch·架构
Elasticsearch1 天前
在 Elastic 中使用 OpenTelemetry 内容包可视化 OpenTelemetry 数据
elasticsearch
Elasticsearch1 天前
用于 IntelliJ IDEA 的新 ES|QL 插件
elasticsearch
Devin~Y1 天前
大厂内容社区面试实录:从 Spring Boot 微服务到 AI RAG 问答(附详细解析)
java·spring boot·redis·elasticsearch·spring cloud·微服务·kafka
一只游鱼1 天前
如何让本地的敏感配置文件不上传到git仓库
git·elasticsearch
斯特凡今天也很帅2 天前
Elasticsearch数据库专栏(一)Kinaba的基础使用
elasticsearch·kibana