【ES系列】(一)简介与安装
首发博客地址
首发博客地址[1]
系列文章地址[2]
教学视频[3]
为什么要学习 ES?
-
强大的全文搜索和检索功能:Elasticsearch 是一个开源的分布式搜索和分析引擎,使用倒排索引和分布式计算等技术,提供了强大的全文搜索和检索功能。学习 ES 可以掌握如何构建复杂的查询、使用各种过滤器和聚合操作来优化搜索结果。
-
实时数据分析和处理:ES 支持实时数据的索引和查询,可用于处理大规模的实时数据。学习 ES 可以了解如何使用 ES 进行实时数据的分析和处理,包括日志分析、事件处理、实时监控等。
-
分布式存储和扩展性:ES 是一个分布式系统,可以将数据分布在多个节点上,以提高存储容量和查询性能。学习 ES 可以帮助了解如何搭建和管理分布式 ES 集群,以及如何优化集群的性能和可靠性。
-
文档导入和处理:ES 支持各种数据源的导入和处理,包括数据库、文件、API 等。学习 ES 可以掌握如何将不同数据源的数据导入到 ES 中,并进行相应的处理和转换。
-
日志分析和搜索引擎优化:ES 在日志分析和搜索引擎优化方面有很大的应用价值。学习 ES 可以学会如何利用 ES 进行日志的实时分析和搜索,以及如何优化搜索引擎的性能和相关性。
-
全文搜索引擎的开发和应用:ES 是一个非常流行的全文搜索引擎,许多企业和项目都在使用 ES 构建全文搜索功能。学习 ES 可以提供开发全文搜索引擎的技能和经验,为职业发展增添竞争力。
总结起来大概就是:
-
分布式搜索引擎 -
大数据实时分析引擎
官网
官网地址[4]
ES 发展历史
Elasticsearch (ES)的发展历史可以追溯到 2004 年,当时 Shay Banon 创建了一个名为 Compass 的开源项目,作为一个基于 Lucene 的全文搜索引擎库。
随着时间的推移,Compass 逐渐发展成为一个独立的搜索引擎,但在 2009 年,Shay Banon 决定重新设计和重构该项目,以解决一些困扰他的设计和架构问题。于是,他创建了一个新的项目,命名为"elasticsearch",并于 2010 年开源发布。
以下是 ES 的主要发展里程碑:
-
2010 年:Elasticsearch 首次开源发布。它基于 Apache Lucene 构建,提供了一个分布式搜索和分析引擎,用于实时数据的索引和查询。
-
2013 年:Elasticsearch 正式成为 Elastic 公司的核心产品,并开始受到广泛关注和采用。此时,Elasticsearch 已经成为开源搜索引擎的领导者之一。
-
2014 年:Elasticsearch 发布了 1.0 版本,这是一个重要的里程碑,标志着 ES 的稳定性和成熟度。1.0 版本引入了一些重要的特性和改进,如聚合操作和索引别名等。
-
2015 年:Elasticsearch 发布了 2.0 版本,引入了许多重要的功能和改进,包括复合索引、文档级别的更新和删除、分布式索引排序等。
-
2016 年:Elasticsearch 发布了 5.0 版本,这是一个重要的版本发布,引入了许多重大的改进和变化。5.0 版本引入了新的分布式文档存储方式,并且废弃了一些旧的功能和 API。
-
2019 年:Elasticsearch 发布了 7.0 版本,这是一个重要的版本发布,引入了许多重要的功能和改进。7.0 版本引入了 Elasticsearch 的新分布式协调引擎,称为"Zen 2",以提高集群的稳定性和性能。
-
2022 年:Elasticsearch 发布了 8.0 版本,这是一个重要的版本发布,引入了许多重要的功能和改进。原生支持 NLP,速度、扩展和检索相关性提升,通过原生矢量搜索提高搜索相关性,默认开启安全功能
随着时间的推移,Elasticsearch 不断发展壮大,成为一个功能强大、可靠性高的分布式搜索和分析引擎。它被广泛应用于各种场景,包括日志分析、实时数据处理、全文搜索和商业智能等。并且,Elastic 公司也推出了其他产品,如 Kibana、Logstash 和 Beats 等,构建了一个完整的数据分析和可视化平台,被称为"Elastic Stack"或"ELK Stack"。
去官网上瞄了一眼,还支持 GPT 了..牛逼,大概看了文章说的是,通过插件可以访问 ES 内容,厉害了,有兴趣可以点击下面链接看看:
【ChatGPT】Elasticsearch 插件:将 ChatGPT 引入 Elasticsearch[5]

安装虚拟机
如果你是本地练习,可以参考这篇文章安装 Linux 系统环境: https://blog.zysicyj.top/4e7b516e[6]
环境兼容性检查
这里一定要确认好 jdk 版本,比如 8.8 支持 jdk19,8.9 不支持 jdk19,但是所有 8.x 都是支持 17 的,因为 17 是 LTS 版本。
所以建议大家安装 jdk17,兼容性比较高
兼容性检查[7]

准备安装包
官网下载:https://www.elastic.co/cn/downloads/elasticsearch[8]
关注【程序员朱永胜】回复【1021】不限速下载
安装 es
yum install elasticsearch-8.9.1-x86_64.rpm

systemctl daemon-reload
systemctl enable elasticsearch.service
修改配置文件
# ======================== Elasticsearch Configuration =========================
#
# NOTE: Elasticsearch comes with reasonable defaults for most settings.
# Before you set out to tweak and tune the configuration, make sure you
# understand what are you trying to accomplish and the consequences.
#
# The primary way of configuring a node is via this file. This template lists
# the most important settings you may want to configure for a production cluster.
#
# Please consult the documentation for further information on configuration options:
# [https://www.elastic.co/guide/en/elasticsearch/reference/index.html](https://www.elastic.co/guide/en/elasticsearch/reference/index.html "https://www.elastic.co/guide/en/elasticsearch/reference/index.html")
#
# ---------------------------------- Cluster -----------------------------------
#
# Use a descriptive name for your cluster:
#
cluster.name: my-application
#
# ------------------------------------ Node ------------------------------------
#
# Use a descriptive name for the node:
#
node.name: node-1
#
# Add custom attributes to the node:
#
#node.attr.rack: r1
#
# ----------------------------------- Paths ------------------------------------
#
# Path to directory where to store the data (separate multiple locations by comma):
#
path.data: /var/lib/elasticsearch
#
# Path to log files:
#
path.logs: /var/log/elasticsearch
#
# ----------------------------------- Memory -----------------------------------
#
# Lock the memory on startup:
#
#bootstrap.memory_lock: true
#
# Make sure that the heap size is set to about half the memory available
# on the system and that the owner of the process is allowed to use this
# limit.
#
# Elasticsearch performs poorly when the system is swapping the memory.
#
# ---------------------------------- Network -----------------------------------
#
# By default Elasticsearch is only accessible on localhost. Set a different
# address here to expose this node on the network:
#
network.host: 0.0.0.0
#
# By default Elasticsearch listens for HTTP traffic on the first free port it
# finds starting at 9200. Set a specific HTTP port here:
#
http.port: 9200
#
# For more information, consult the network module documentation.
#
# --------------------------------- Discovery ----------------------------------
#
# Pass an initial list of hosts to perform discovery when this node is started:
# The default list of hosts is ["127.0.0.1", "[::1]"]
#
#discovery.seed_hosts: ["host1", "host2"]
#
# Bootstrap the cluster using an initial set of master-eligible nodes:
#
#cluster.initial_master_nodes: ["node-1", "node-2"]
#
# For more information, consult the discovery and cluster formation module documentation.
#
# ---------------------------------- Various -----------------------------------
#
# Allow wildcard deletion of indices:
#
#action.destructive_requires_name: false
#----------------------- BEGIN SECURITY AUTO CONFIGURATION -----------------------
#
# The following settings, TLS certificates, and keys have been automatically
# generated to configure Elasticsearch security features on 31-08-2023 09:48:01
#
# --------------------------------------------------------------------------------
# Enable security features
xpack.security.enabled: false
xpack.ml.enabled: false
xpack.security.enrollment.enabled: true
# Enable encryption for HTTP API client connections, such as Kibana, Logstash, and Agents
xpack.security.http.ssl:
enabled: false
keystore.path: certs/http.p12
# Enable encryption and mutual authentication between cluster nodes
xpack.security.transport.ssl:
enabled: false
verification_mode: certificate
keystore.path: certs/transport.p12
truststore.path: certs/transport.p12
# Create a new cluster with the current node only
# Additional nodes can still join the cluster later
cluster.initial_master_nodes: ["localhost.localdomain"]
# Allow HTTP API connections from anywhere
# Connections are encrypted and require user authentication
http.host: 0.0.0.0
# Allow other nodes to join the cluster from anywhere
# Connections are encrypted and mutually authenticated
#transport.host: 0.0.0.0
#----------------------- END SECURITY AUTO CONFIGURATION -------------------------
启动并校验 es
systemctl start elasticsearch
systemctl status elasticsearch
出现这个画面基本是没问题了

[root@localhost elasticsearch]# curl -X GET "http://localhost:9200/"
{
"name" : "node-1",
"cluster_name" : "my-application",
"cluster_uuid" : "XAGRLef2SayyXzuNHPgX2Q",
"version" : {
"number" : "8.9.1",
"build_flavor" : "default",
"build_type" : "rpm",
"build_hash" : "a813d015ef1826148d9d389bd1c0d781c6e349f0",
"build_date" : "2023-08-10T05:02:32.517455352Z",
"build_snapshot" : false,
"lucene_version" : "9.7.0",
"minimum_wire_compatibility_version" : "7.17.0",
"minimum_index_compatibility_version" : "7.0.0"
},
"tagline" : "You Know, for Search"
}
参考资料
首发博客地址: https://blog.zysicyj.top/
[2]系列文章地址: https://blog.zysicyj.top/categories/技术文章/后端技术/系列文章/ES/
[3]教学视频: https://www.ixigua.com/7273889957465293368?logTag=89ff41ffd92c090eb176
[4]官网地址: https://www.elastic.co/cn/
[5]【ChatGPT】Elasticsearch插件:将ChatGPT引入Elasticsearch: https://www.elastic.co/cn/blog/chatgpt-elasticsearch-plugin-elastic-data
[6]https://blog.zysicyj.top/4e7b516e: https://blog.zysicyj.top/4e7b516e
[7]兼容性检查: https://www.elastic.co/cn/support/matrix#matrix_jvm&#enterprise-search-and-jvm
[8]https://www.elastic.co/cn/downloads/elasticsearch: https://www.elastic.co/cn/downloads/elasticsearch
本文由 mdnice 多平台发布
相关文章:

【ES系列】(一)简介与安装
首发博客地址 首发博客地址[1] 系列文章地址[2] 教学视频[3] 为什么要学习 ES? 强大的全文搜索和检索功能:Elasticsearch 是一个开源的分布式搜索和分析引擎,使用倒排索引和分布式计算等技术,提供了强大的全文搜索和检索功能。学习 ES 可以掌…...

opencv案例06-基于opencv图像匹配的消防通道障碍物检测与深度yolo检测的对比
基于图像匹配的消防通道障碍物检测 技术背景 消防通道是指在各种险情发生时,用于消防人员实施营救和被困人员疏散的通道。消防法规定任何单位和个人不得占用、堵塞、封闭消防通道。事实上,由于消防通道通常缺乏管理,导致各种垃圾࿰…...

练习2:88. 合并两个有序数组
这里写自定义目录标题 题目解体思路代码 题目 给你两个按非递减顺序排列的整数数组 nums1 和 nums2,另有两个整数 m和 n ,分别表示 nums1 和 nums2中的元素数目。 请你合并nums2 到 nums1 中,使合并后的数组同样按非递减顺序排列。 注意&a…...

【代码随想录day23】不同路径
题目 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。 问总共有多少条不同的路径? 示…...

SpringBoot 博客网站
SpringBoot 博客网站 系统功能 登录注册 博客列表展示 搜索 分类 个人中心 文章分类管理 我的文章管理 发布文章 开发环境和技术 开发语言:Java 使用框架: SpringBoot jpa H2 Spring Boot是一个用于构建Java应用程序的开源框架,它是Spring框架的一…...

【分布式搜索引擎elasticsearch】
文章目录 1.elasticsearch基础索引和映射索引库操作索引库操作总结 文档操作文档操作总结 RestAPIRestClient操作文档 1.elasticsearch基础 什么是elasticsearch? 一个开源的分布式搜索引擎,可以用来实现搜索、日志统计、分析、系统监控等功能 什么是…...

wireshark 流量抓包例题
一、题目一(1.pcap) 题目要求: 1.黑客攻击的第一个受害主机的网卡IP地址 2.黑客对URL的哪一个参数实施了SQL注入 3.第一个受害主机网站数据库的表前缀(加上下划线例如abc) 4.第一个受害主机网站数据库的名字 看到题目SQL注入,…...
【Axure视频教程】表格编号函数
今天教大家在Axure里如何使用表格编号函数,包括表格编号函数的基本原理、在需要翻页的中继器表格里如何正确使用该函数、函数作为条件的应用,包括让指定第几行的元件默认变色效果以及更新对应第几行内容的效果。该教程主要讲解表格编号函数,不…...
大数据-玩转数据-Flink定时器
一、说明 基于处理时间或者事件时间处理过一个元素之后, 注册一个定时器, 然后指定的时间执行. Context和OnTimerContext所持有的TimerService对象拥有以下方法: currentProcessingTime(): Long 返回当前处理时间 currentWatermark(): Long 返回当前watermark的时间戳 registe…...

Linux 操作系统实战视频课 - GPIO 基础介绍
文章目录 一、GPIO 概念说明二、视频讲解沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇我们将讲解 GPIO 。 一、GPIO 概念说明 ARM 平台中的 GPIO(通用输入/输出)是用于与外部设备进行数字输入和输出通信的重要硬件接口。ARM 平台的 GPIO 特性可以根据具体的芯…...
ChatGPT在医疗保健信息管理和电子病历中的应用前景如何?
ChatGPT在医疗保健信息管理和电子病历中有着广阔的应用前景,可以提高医疗保健行业的效率、准确性和可访问性。本文将详细讨论ChatGPT在医疗保健信息管理和电子病历中的应用前景,以及相关的益处和挑战。 ### 1. ChatGPT在医疗保健信息管理中的应用前景 …...

安防监控/视频存储/视频汇聚平台EasyCVR接入海康Ehome车载设备出现收流超时的原因排查
安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台可拓展性强、视频能力灵活、部署轻快,可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等,以及支持厂家私有协议与SDK接入,包括海康Ehome、海大宇等设备的SDK等。视频汇聚平台既具…...
【zookeeper】zookeeper监控指标查看
zookeeper 监控指标 日常工作中,我们有时候需要对zookeeper集群的状态进行检查,下面分享一些常用的方法。 zookeeper获取监控指标已知的有两种方式: 通过zookeeper自带的四字命令 (four letter words command )获取各…...

Flink 如何处理反压?
分析&回答 什么是反压(backpressure) 反压通常是从某个节点传导至数据源并降低数据源(比如 Kafka consumer)的摄入速率。反压意味着数据管道中某个节点成为瓶颈,处理速率跟不上上游发送数据的速率,而…...

JAVA基础-JDBC
本博客记录JAVA基础JDBC部分的学习内容 JDBC基本概念 JDBC : JAVA链接数据库,是JAVA链接数据库的技术的统称,包含如下两部分: 1. JAVA提供的JDBC规范(即各种数据库接口)存储在java.sql 和 javax.sql中的api 2. 各个数…...

嵌入式学习笔记(1)ARM的编程模式和7种工作模式
ARM提供的指令集 ARM态-ARM指令集(32-bit) Thumb态-Thumb指令集(16-bit) Thumb2态-Thumb2指令集(16 & 32 bit) Thumb指令集是对ARM指令集的一个子集重新编码得到的,指令长度为16位。通常在…...

[NSSCTF Round #15NSSCTF 2nd]——Web、Misc、Crypto方向 详细Writeup
前言 虽然师傅们已经尽力了,但是没拿到前十有点可惜,题很好吃,明年再来() 关于wp: 因为我没有学过misc,但是比赛的时候还是运气好出了三道,所以wp就只把做题步骤给出,也…...

Metasploit“MSF”连接postgresql时因排序规则版本不匹配导致无法连接
一、问题 更新Kali之后使用Metasploit时出现一个问题,连接postgresql时因排序规则版本不匹配导致无法连接 警告: database "msf" has a collation version mismatch DETAIL: The database was created using collation version 2.36, but the operati…...
CCF CSP题解:矩阵运算(202305-2)
链接和思路 OJ链接:传送门 本题要求计算1个公式: ( W ⋅ ( Q K T ) ) V \left(\mathbf{W} \cdot (\mathbf{Q} \times \mathbf{K}^{T})\right) \times \mathbf{V} (W⋅(QKT))V 其中, Q \mathbf{Q} Q、 K \mathbf{K} K和 V \mathbf{V} V均…...

划分字母区间【贪心算法】
划分字母区间 给你一个字符串 s 。我们要把这个字符串划分为尽可能多的片段,同一字母最多出现在一个片段中。 注意,划分结果需要满足:将所有划分结果按顺序连接,得到的字符串仍然是 s 。返回一个表示每个字符串片段的长度的列表。…...
应用升级/灾备测试时使用guarantee 闪回点迅速回退
1.场景 应用要升级,当升级失败时,数据库回退到升级前. 要测试系统,测试完成后,数据库要回退到测试前。 相对于RMAN恢复需要很长时间, 数据库闪回只需要几分钟。 2.技术实现 数据库设置 2个db_recovery参数 创建guarantee闪回点,不需要开启数据库闪回。…...
ubuntu搭建nfs服务centos挂载访问
在Ubuntu上设置NFS服务器 在Ubuntu上,你可以使用apt包管理器来安装NFS服务器。打开终端并运行: sudo apt update sudo apt install nfs-kernel-server创建共享目录 创建一个目录用于共享,例如/shared: sudo mkdir /shared sud…...
数据库分批入库
今天在工作中,遇到一个问题,就是分批查询的时候,由于批次过大导致出现了一些问题,一下是问题描述和解决方案: 示例: // 假设已有数据列表 dataList 和 PreparedStatement pstmt int batchSize 1000; // …...
Rapidio门铃消息FIFO溢出机制
关于RapidIO门铃消息FIFO的溢出机制及其与中断抖动的关系,以下是深入解析: 门铃FIFO溢出的本质 在RapidIO系统中,门铃消息FIFO是硬件控制器内部的缓冲区,用于临时存储接收到的门铃消息(Doorbell Message)。…...

用机器学习破解新能源领域的“弃风”难题
音乐发烧友深有体会,玩音乐的本质就是玩电网。火电声音偏暖,水电偏冷,风电偏空旷。至于太阳能发的电,则略显朦胧和单薄。 不知你是否有感觉,近两年家里的音响声音越来越冷,听起来越来越单薄? —…...

C++使用 new 来创建动态数组
问题: 不能使用变量定义数组大小 原因: 这是因为数组在内存中是连续存储的,编译器需要在编译阶段就确定数组的大小,以便正确地分配内存空间。如果允许使用变量来定义数组的大小,那么编译器就无法在编译时确定数组的大…...
MinIO Docker 部署:仅开放一个端口
MinIO Docker 部署:仅开放一个端口 在实际的服务器部署中,出于安全和管理的考虑,我们可能只能开放一个端口。MinIO 是一个高性能的对象存储服务,支持 Docker 部署,但默认情况下它需要两个端口:一个是 API 端口(用于存储和访问数据),另一个是控制台端口(用于管理界面…...
LCTF液晶可调谐滤波器在多光谱相机捕捉无人机目标检测中的作用
中达瑞和自2005年成立以来,一直在光谱成像领域深度钻研和发展,始终致力于研发高性能、高可靠性的光谱成像相机,为科研院校提供更优的产品和服务。在《低空背景下无人机目标的光谱特征研究及目标检测应用》这篇论文中提到中达瑞和 LCTF 作为多…...
离线语音识别方案分析
随着人工智能技术的不断发展,语音识别技术也得到了广泛的应用,从智能家居到车载系统,语音识别正在改变我们与设备的交互方式。尤其是离线语音识别,由于其在没有网络连接的情况下仍然能提供稳定、准确的语音处理能力,广…...

VSCode 使用CMake 构建 Qt 5 窗口程序
首先,目录结构如下图: 运行效果: cmake -B build cmake --build build 运行: windeployqt.exe F:\testQt5\build\Debug\app.exe main.cpp #include "mainwindow.h"#include <QAppli...