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

news2024/9/25 13:17:59

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2077767.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【网络基础】DNS协议详解:从背景到解析过程及`dig`工具的使用

文章目录 DNS 协议① 前言 - 背景② 域名③ DNS解析过程④ Linux下用dig工具 分析DNS过程⑤ 浏览器中输入URL后,会有哪些过程 DNS 协议 DNS(域名系统,Domain Name System)是互联网的一个核心协议,用于将域名转换为 IP…

有一种“穷人性格”,大事拎不清,小事算太精

在生活的舞台上,人们各自演绎着不同的人生故事。而有一种性格特征,常常被视为与经济困境紧密相连,那就是“大事拎不清,小事算太精”的所谓“穷人性格”。这种性格不仅在个体层面影响着人们的生活轨迹,也在一定程度上反映了社会现象背后的深层次问题。 一、“穷人性格”的表…

读软件开发安全之道:概念、设计与实施10安全设计审查

1. 安全设计审查 1.1. Security Design Review,SDR 1.2. 将安全性融入软件设计的最佳方法之一是戴上“安全帽”进行单独的设计审查 1.3. 安全审查员是熟悉软件运行的系统和环境,以及知道如何使用它的人,但他们不参与设计工作,这…

【SpringCloud】(一文通) 统一服务入口-Gateway

目 录 一. 网关介绍1.1 问题1.2 什么是 API 网关1.3 常见网关实现 二. Spring Cloud Gateway2.1 快速上手2.1.1 创建网关项目2.1.2 引入网关依赖2.1.3 编写启动类2.1.4 添加Gateway的路由配置2.1.5 测试 2.2 Route Predicate Factories2.2.1 Predicate2.2.2 Route Predicate Fa…

<数据集>脑肿瘤识别数据集<目标检测>

数据集格式:VOCYOLO格式 图片数量:5249张 标注数量(xml文件个数):5249 标注数量(txt文件个数):5249 标注类别数:4 标注类别名称:[Glioma, Meningioma, No Tumor, Pituitary] 序号类别名称图片数框数1…

【RabbitMQ】概述

目 录 一. RabbitMQ 概述什么是 MQMQ的作用为什么选择 RabbitMQRabbitMQ 介绍 一. RabbitMQ 概述 前言 Rabbit, 兔子的意思 互联网行业很多公司, 都喜欢用动物命名产品, 或者作为公司的logo, 吉祥物. 比如: 腾讯的企鹅, 京东的狗, 美团的袋鼠, 携程的海豚,阿里就更多了, 蚂蚁…

原生JS实现下滑到当前模块时左右滑动到位

效果图&#xff1a; ​​​​​​​ 源码&#xff1a; <div style"height: 1500px;"></div><div class"software-box"><div class"software-container" style"display: flex;"><div class"software-…

MapBox Android版开发 2 本地化

MapBox Android版开发 2 本地化 前言MapBox V9 本地化示例1示例2示例3运行效果图 MapBox V11 本地化示例运行效果图 前言 前文介绍了MapBox V9和 V11 两个版本配置和显示地图。默认MapBox地图语言为英文&#xff0c;本文重点介绍如何将地图语言设置为中文。 MapBox V9 本地化…

52 mysql 启动过程中常见的相关报错信息

前言 我们这里主要是看一下 service mysql start, service mysql stop 的过程中的一些常见的错误问题 这些 也是之前经常碰到, 但是 每次都是 去搜索, 尝试 1, 2, 3, 4 去解决问题 但是 从来未曾思考过 这个问题到底是 怎么造成的 The server quit without updating PID fil…

【Test 001】Qt 开发基础体系 QMap 类和 QHash 类以及 QVector 类

文章目录 1.QMap 详解1.1 QMap 的介绍1.2 QMap 的具体用法如下1.3 QmultiMap类 2.QHash 详解3. QMap 和 QHash 的对比4. QVector 详解 1.QMap 详解 1.1 QMap 的介绍 &#x1f427;① QMap<key,T>提供一个从类型为Key的键到类型为T的值的映射。通常&#xff0c;QMap存储的…

sheng的学习笔记-AI-半监督SVM

AI目录&#xff1a;sheng的学习笔记-AI目录-CSDN博客 svm: sheng的学习笔记-AI-支持向量机&#xff08;SVM&#xff09;-CSDN博客 半监督学习&#xff1a; sheng的学习笔记-AI-半监督学习-CSDN博客 什么是半监督svm 半监督支持向量机&#xff08;Semi-Supervised Support Ve…

重邮计算机网络803-(3)数据链路层

目录 一.数据链路两种类型 二.使用点对点信道的数据链路层 1. 数据链路和帧 2.数据链路层传送的是帧 三.三个基本问题 1.封装成帧 2.透明传输 ①字节填充法 ②其他方法&#xff1a;字符计数法&#xff0c;比特填充法&#xff0c;违规编码 3. 差错检测 &#xff08;1…

容器存储接口--CSI

文章目录 一、背景二、CSI 是什么三、CSI 系统架构1、CSI 如何与 k8s 组件相互通信2、CSI 由哪些组件组成3、CSI 的工作原理4、k8s 存储中涉及的组件及其作用4.1、Sidecar Containers4.1.1、[external-attacher](https://kubernetes-csi.github.io/docs/external-attacher.html…

3.1ER图

ER 最后总结以下E-R图的设计原则。 1&#xff09;尽量减少实体集数量&#xff0c;能作为属性时不要作为实体集。 2&#xff09;“属性”不能再具有需要描述的性质。必须时不可分割的数据项。不能时其他属性的聚集。3&#xff09;“属性”不能与其他实体具有联系 4)综合局部E-…

XDMA原理

目录 1. PCIe to AXI Lite Master1.1. BAR Address to AXI Address 2. PCIe to AXI Memory Mapped Master3. PCIe to DMA Interface3.1. Descriptor3.2. Transfer for H2C 4. MSI-X Vector Table and PBA5. AXI Lite Slave 介绍XDMA IP核的功能及原理。 根据pg195&#xff0c;…

AI生3D:从草图到交互式3D游戏场景

随着人工智能技术的进步,3D内容生成变得越来越容易。AI生3D是一种创新的技术框架,它允许用户仅使用简单的草图和文本描述就能创建出复杂的3D游戏场景。这项技术不仅降低了3D内容创作的门槛,还极大地扩展了创意表达的可能性。 技术框架概述 AI生3D利用先进的机器学习模型来…

p2p、分布式,区块链笔记:基于IPFS实现的数据库orbitdb笔记

orbitdb orbitdb &#xff1a;Peer-to-Peer Databases for the Decentralized Web 特性说明特点无服务器、分布式、p2p编程语言JavaScript对其他语言的支持A python client for the Orbitdb HTTP API&#xff0c;go-orbit-db&#xff0c; 让我们了解一下谁在使用 js-ipfs&…

【国产游戏的机遇与挑战】

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

在多云生态下,如何实现跨云的自动化身份管理?

在多云环境下实现跨云的自动化身份管理是一个重要的课题&#xff0c;因为这可以帮助企业确保用户和应用程序能够在不同云服务提供商之间无缝地访问资源&#xff0c;同时保持高度的安全性和合规性。以下是一些关键技术和实践方法&#xff0c;用于实现跨云环境下的自动化身份管理…

jenkins 开启控制台详细日志

1、开启控制台详细日志&#xff0c;查看真正报错原因 开启后生成流水线语句&#xff1a; 2、根本问题 使用jenkins再次构建&#xff0c;查看控制台日志 报错&#xff1a; 意思是在执行ssh命令的时候&#xff0c; /root/apps/jenkins/portal/portal-server/Dockerfile 路径下没…