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

2024-08-27 07:44

本文主要是介绍【搜索引擎】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 Flink 框架集成

5.3.1 Flink 框架介绍

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的倒排索引,区别于传统的正向索引,倒排索引会再存储数据时将关键词和数据进行关联,保存到倒排表中,然后查询时,将查询内容进行分词后在倒排表中进行查询,最后匹配数据即可。

这篇关于【搜索引擎】ElasticSearch 7.x版本的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1111059

相关文章

Python版本与package版本兼容性检查方法总结

《Python版本与package版本兼容性检查方法总结》:本文主要介绍Python版本与package版本兼容性检查方法的相关资料,文中提供四种检查方法,分别是pip查询、conda管理、PyP... 目录引言为什么会出现兼容性问题方法一:用 pip 官方命令查询可用版本方法二:conda 管理包环境方法

MySQL之搜索引擎使用解读

《MySQL之搜索引擎使用解读》MySQL存储引擎是数据存储和管理的核心组件,不同引擎(如InnoDB、MyISAM)采用不同机制,InnoDB支持事务与行锁,适合高并发场景;MyISAM不支持事务,... 目录mysql的存储引擎是什么MySQL存储引擎的功能MySQL的存储引擎的分类查看存储引擎1.命令

Python一次性将指定版本所有包上传PyPI镜像解决方案

《Python一次性将指定版本所有包上传PyPI镜像解决方案》本文主要介绍了一个安全、完整、可离线部署的解决方案,用于一次性准备指定Python版本的所有包,然后导出到内网环境,感兴趣的小伙伴可以跟随... 目录为什么需要这个方案完整解决方案1. 项目目录结构2. 创建智能下载脚本3. 创建包清单生成脚本4

Ubuntu如何升级Python版本

《Ubuntu如何升级Python版本》Ubuntu22.04Docker中,安装Python3.11后,使用update-alternatives设置为默认版本,最后用python3-V验证... 目China编程录问题描述前提环境解决方法总结问题描述Ubuntu22.04系统自带python3.10,想升级

更改linux系统的默认Python版本方式

《更改linux系统的默认Python版本方式》通过删除原Python软链接并创建指向python3.6的新链接,可切换系统默认Python版本,需注意版本冲突、环境混乱及维护问题,建议使用pyenv... 目录更改系统的默认python版本软链接软链接的特点创建软链接的命令使用场景注意事项总结更改系统的默

Linux升级或者切换python版本实现方式

《Linux升级或者切换python版本实现方式》本文介绍在Ubuntu/Debian系统升级Python至3.11或更高版本的方法,通过查看版本列表并选择新版本进行全局修改,需注意自动与手动模式的选... 目录升级系统python版本 (适用于全局修改)对于Ubuntu/Debian系统安装后,验证Pyt

MySQL 升级到8.4版本的完整流程及操作方法

《MySQL升级到8.4版本的完整流程及操作方法》本文详细说明了MySQL升级至8.4的完整流程,涵盖升级前准备(备份、兼容性检查)、支持路径(原地、逻辑导出、复制)、关键变更(空间索引、保留关键字... 目录一、升级前准备 (3.1 Before You Begin)二、升级路径 (3.2 Upgrade

Nginx进行平滑升级的实战指南(不中断服务版本更新)

《Nginx进行平滑升级的实战指南(不中断服务版本更新)》Nginx的平滑升级(也称为热升级)是一种在不停止服务的情况下更新Nginx版本或添加模块的方法,这种升级方式确保了服务的高可用性,避免了因升... 目录一.下载并编译新版Nginx1.下载解压2.编译二.替换可执行文件,并平滑升级1.替换可执行文件

在macOS上安装jenv管理JDK版本的详细步骤

《在macOS上安装jenv管理JDK版本的详细步骤》jEnv是一个命令行工具,正如它的官网所宣称的那样,它是来让你忘记怎么配置JAVA_HOME环境变量的神队友,:本文主要介绍在macOS上安装... 目录前言安装 jenv添加 JDK 版本到 jenv切换 JDK 版本总结前言China编程在开发 Java

使用jenv工具管理多个JDK版本的方法步骤

《使用jenv工具管理多个JDK版本的方法步骤》jenv是一个开源的Java环境管理工具,旨在帮助开发者在同一台机器上轻松管理和切换多个Java版本,:本文主要介绍使用jenv工具管理多个JD... 目录一、jenv到底是干啥的?二、jenv的核心功能(一)管理多个Java版本(二)支持插件扩展(三)环境隔