【ES系列】(一)简介与安装

首发博客地址

首发博客地址[1]

系列文章地址[2]

教学视频[3]


为什么要学习 ES?

  1. 强大的全文搜索和检索功能:Elasticsearch 是一个开源的分布式搜索和分析引擎,使用倒排索引和分布式计算等技术,提供了强大的全文搜索和检索功能。学习 ES 可以掌握如何构建复杂的查询、使用各种过滤器和聚合操作来优化搜索结果。

  2. 实时数据分析和处理:ES 支持实时数据的索引和查询,可用于处理大规模的实时数据。学习 ES 可以了解如何使用 ES 进行实时数据的分析和处理,包括日志分析、事件处理、实时监控等。

  3. 分布式存储和扩展性:ES 是一个分布式系统,可以将数据分布在多个节点上,以提高存储容量和查询性能。学习 ES 可以帮助了解如何搭建和管理分布式 ES 集群,以及如何优化集群的性能和可靠性。

  4. 文档导入和处理:ES 支持各种数据源的导入和处理,包括数据库、文件、API 等。学习 ES 可以掌握如何将不同数据源的数据导入到 ES 中,并进行相应的处理和转换。

  5. 日志分析和搜索引擎优化:ES 在日志分析和搜索引擎优化方面有很大的应用价值。学习 ES 可以学会如何利用 ES 进行日志的实时分析和搜索,以及如何优化搜索引擎的性能和相关性。

  6. 全文搜索引擎的开发和应用: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]

alt

安装虚拟机

如果你是本地练习,可以参考这篇文章安装 Linux 系统环境: https://blog.zysicyj.top/4e7b516e[6]

环境兼容性检查

这里一定要确认好 jdk 版本,比如 8.8 支持 jdk19,8.9 不支持 jdk19,但是所有 8.x 都是支持 17 的,因为 17 是 LTS 版本。

所以建议大家安装 jdk17,兼容性比较高

兼容性检查[7]

alt

准备安装包

官网下载:https://www.elastic.co/cn/downloads/elasticsearch[8]

关注【程序员朱永胜】回复【1021】不限速下载

安装 es

yum install elasticsearch-8.9.1-x86_64.rpm
alt
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

出现这个画面基本是没问题了

alt
[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"
}

参考资料

[1]

首发博客地址: 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 多平台发布

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【性能测试】Jenkins+Ant+Jmeter自动化框架的搭建思路

前言 前面讲了Jmeter在性能测试中的应用及扩展。随着测试的深入,我们发现在性能测试中也会遇到不少的重复工作。 比如某新兴业务处于上升阶段,需要在每个版本中,对某些新增接口进行性能测试,有时还需要在一天中的不同时段分别进行…

【强化学习】MDP马尔科夫链

基本元素 状态集:表示智能体所处所有状态的全部可能性的集合。类似的集合,行为集,回报集决策:规定我在某个状态下,我做出某个action马尔可夫链:学术上来说是无记忆性质。说白了就是我只在乎我目前的状态。…

【C语言】入门——指针

目录 ​编辑 1.指针是什么 2.指针类型和指针运算 2.1指针-整数 2.2指针-指针 2.3指针的关系运算 3.野指针 3.1野指针成因 👍指针未初始化: 👍指针越界访问: 👍指针指向空间释放: 3.2如何规避野指针 …

超图嵌入论文阅读2:超图神经网络

超图嵌入论文阅读2:超图神经网络 原文:Hypergraph Neural Networks ——AAAI2019(CCF-A) 源码:https://github.com/iMoonLab/HGNN 500star 概述 贡献:用于数据表示学习的超图神经网络 (HGNN) 框架&#xf…

【探索Linux】—— 强大的命令行工具 P.8(进程优先级、环境变量)

阅读导航 前言一、进程优先级1. 优先级概念2. Linux查看系统进程3. PRI(Priority)和NI(Nice) 二、环境变量1. 概念2. 查看环境变量方法3. 环境变量的组织方式4.通过代码获取环境变量5. 环境变量的特点 总结温馨提示 前言 前面我们…

线性空间、子空间、基、基坐标、过渡矩阵

线性空间的定义 满足加法和数乘封闭。也就是该空间的所有向量都满足乘一个常数后或者和其它向量相加后仍然在这个空间里。进一步可以理解为该空间中的所有向量满足加法和数乘的组合封闭。即若 V 是一个线性空间,则首先需满足: 注:线性空间里面…

命令执行漏洞(附例题)

一.原理 应用有时需要调用一些执行系统命令的函数,如PHP中的system、exec、shell_exec、passthru、popen、proc_popen等,当用户能控制这些函数的参数时,就可以将恶意系统命令拼接到正常命令中,从而造成命令执行攻击。 二.利用条…

基于Matlab实现多个图像增强案例(附上源码+数据集)

图像增强是数字图像处理中的一个重要步骤,它通过一系列的算法和技术,使图像在视觉上更加清晰、明亮、对比度更强等,以便更好地满足人们的需求。在本文中,我们将介绍如何使用Matlab实现图像增强。 文章目录 部分源码源码数据集下载…

【Arduino25】液晶模拟值实验

硬件准备 LCD1602显示屏&#xff1a;1 个 220欧的电阻&#xff1a;1 个 旋钮电位器&#xff1a;1 个 面包板&#xff1a;1个 杜邦线&#xff1a;若干 硬件连线 软件程序 #include <LiquidCrystal.h>LiquidCrystal lcd(12,11,5,4,3,2);void setup(){lcd.begin(16,2);…

element-ui 修改tooltip样式

1.表格tooltip 统一修改 <el-table:data"tableDatas"tooltip-effect"light" .el-tooltip__popper.is-light {background: #FFF;box-shadow: 0px 0px 8px 1px rgba(0,0,0,0.16);border-radius: 4px;opacity: 1;border: none;&[x-placement^top] .p…

Android笔记(二十八):在雷电模拟器安卓7.0+上使用Charles抓包详细教程

背景 由于手头没有合适的真机,所有经常使用雷神模拟器来跑项目,模拟器也需要能够抓包看看接口返回的数据,以便自测调试。本文记录了如何在雷电模拟器安卓7.0+上使用Charles抓包,其他模拟器没试过。 最终效果 浏览器打开百度网页,能抓到百度页面数据 具体步骤 模拟器…

POI-TL制作word

本文相当于笔记&#xff0c;主要根据官方文档Poi-tl Documentation和poi-tl的使用&#xff08;最全详解&#xff09;_JavaSupeMan的博客-CSDN博客文章进行学习&#xff08;上班够用&#xff09; Data AllArgsConstructor NoArgsConstructor ToString EqualsAndHashCode public …

1.创建项目(wpf视觉项目)

目录 前言本章环境创建项目启动项目可执行文件 前言 本项目主要开发为视觉应用&#xff0c;项目包含&#xff08;视觉编程halcon的应用&#xff0c;会引入handycontrol组件库&#xff0c;工具库Masuit.Tools.Net&#xff0c;数据库工具sqlSugar等应用&#xff09; 后续如果还有…

骨传导耳机对身体有损伤吗、骨传导耳机好不好

骨传导耳机是相对安全的&#xff0c;不会对身体造成损伤。它们的工作原理是通过将声音振动传递到颅骨&#xff0c;然后通过骨骼传导到内耳&#xff0c;而不是直接通过传统的扬声器将声音发送到耳朵。 这种声音的传导方式有一潜在的优势&#xff0c;接下来就和大家说说&#xff…

51单片机简易时钟闹钟八位数码管显示仿真( proteus仿真+程序+原理图+报告+讲解视频)

51单片机简易时钟闹钟八位数码管显示仿真( proteus仿真程序原理图报告讲解视频&#xff09; 1.主要功能&#xff1a;2.仿真3. 程序代码4. 原理图元器件清单 5. 设计报告6. 设计资料内容清单&&下载链接资料下载链接&#xff08;可点击&#xff09;&#xff1a; 51单片机…

Test2

方案 markdownTypora picGo jsdelivr github仓库 bloghelper Typora&#xff1a; 本地 Markdown 编辑器&#xff0c;用于本地编写文档 PicGo&#xff1a;一个用于快速上传图片并获取图片 URL 链接的工具&#xff0c;可以与 Typora 集成&#xff0c;实现黏贴图片后自动上传图…

【数据结构】二叉搜索树——二叉搜索树的概念和介绍、二叉搜索树的简单实现、二叉搜索树的增删查改

文章目录 二叉搜索树1. 二叉搜索树的概念和介绍2. 二叉搜索树的简单实现2.1二叉搜索树的插入2.2二叉搜索树的查找2.3二叉搜索树的遍历2.4二叉搜索树的删除2.5完整代码和测试 二叉搜索树 1. 二叉搜索树的概念和介绍 二叉搜索树又称二叉排序树&#xff0c;它或者是一棵空树&…

网络技术学习十三:DNS(域名服务器)

DNS 域名 产生背景 通过IP地址访问目标主机&#xff0c;不便于记忆 通过容易记忆的域名来标识主机位置 域名的树形层次化结构 根域 领级域 主机所处的国家/区域&#xff0c;注册人的性质 二级域 注册人自行创建的名称 主机名 区域内部的主机的名称 由注册人自行创建…

stm32(GD32,apm32),开优化后需要特别注意的地方

提到优化就不得不提及 volatile 使用场景 1&#xff1a;中断服务程序中修改的供其它程序检测的变量&#xff0c;需要加volatile&#xff1b; : 2&#xff1a;多任务环境下各任务间共享的标志&#xff0c;应该加volatile&#xff1b; 3&#xff1a;并行设备的硬件寄存器&#x…

【免费模板】2023数学建模国赛word+latex模板免费分享

无需转发 免费获取2023国赛模板&#xff0c;获取方式见文末 模板文件预览如下&#xff1a; 模板参考格式如下&#xff1a; &#xff08;题目&#xff09;XXXXXX 摘 要&#xff1a; 开头段&#xff1a;需要充分概括论文内容&#xff0c;一般两到三句话即可&#xff0c;长度控…