一文掌握新版ElasticSearch8.X+SpringBoot3.X+JDK17最佳实践,常见搜索API使用和性能优化

背景:搜索引擎ElasticSearch8.X+SpringBoo3.X的用途如下

  1. 实时搜索功能:ElasticSearch是一个开源的实时分布式搜索和分析引擎,它能够实现高效的实时搜索功能。学习ElasticSearch可以帮助我们构建强大的搜索功能,提升用户体验和搜索效率,多数互联网公司里面用的技术,构建业务搜索/日志存储分析/可视化大屏

  2. 数据分析能力:ElasticSearch不仅仅可以用于搜索功能,还可以用于数据分析和数据可视化。学习ElasticSearch可以帮助我们深入了解数据分析的原理和方法,提升我们的数据分析能力。

  3. 分布式系统:ElasticSearch是一个分布式系统,可以在多个节点上分布数据和处理请求。学习ElasticSearch可以帮助我们了解分布式系统的设计和实现原理,提升我们的分布式系统开发能力。

  4. Spring Boot和ElasticSearch的结合:Spring Boot是一个快速开发框架,可以帮助我们快速构建企业级应用程序。学习Spring Boot和ElasticSearch的结合可以帮助我们构建强大的搜索引擎应用程序,提升我们的开发效率。

  5. 有谁在用,进一线大厂(国内大厂多数都有用 ),国内:阿里、字节、腾讯 、微信、网易、虎牙、青云、新浪等;国外:谷歌、Facebook、亚马逊、苹果等;产品:维基百科、Github、StackOverFlow都是使用ElasticSearch存储数据

学完我们这个文章后的能力

  1. ElasticStack8.X核心架构和应用场景,实战云服务器选购+Linux服务器源码安装

  2. 源码安装Kibana8.X+ES8.X常用命令操作,多案例实战Index和Document核心操作

  3. ES8.X映射Mapping定义和IK中文分词配置Query DSL多案例 match/match_all/filter/

  4. match高级用法多字段匹配和短语搜索案例,单词纠错Fuzzy模糊查询和搜索高亮语法实战

  5. Agg指标metric聚合搜索sum/avg/max/Trem/Range/Date Histogram多案例实战

  6. 新版SpringBoot3.X+ElasticSearch8.X整合多案例实战

什么是Elastic Stack?

学习ElasticSearch之前,需要知道下什么是Elastic Stack?是一个开源的数据分析和可视化平台,由Elasticsearch、Logstash、Kibana和Beats组成。

很多同学听说过ELK,实际上ELK是三款软件的简称,分别是Elasticsearch、 Logstash、Kibana组成,在发展的过程中有新成员Beats的加入,所以就形成了Elastic Stack,ELK是旧的称呼,Elastic Stack是新的名字

ElasticSearch:一个分布式实时搜索和分析引擎,高性能和可伸缩性闻名,能够快速地存储、搜索和分析大量结构化和非结构化数据,基于java开发,它是Elastic Stack的核心组件,提供分布式数据存储和搜索能力。

Logstash:是一个用于数据收集、转换和传输的数据处理引擎,支持从各种来源(如文件、日志、数据库等)收集数据;基于java开发,并对数据进行结构化、过滤和转换,然后将数据发送到Elasticsearch等目标存储或分析系统。

Kibana:基于node.js开发,数据可视化和仪表盘工具,连接到Elasticsearch,通过简单易用的用户界面创建各种图表、图形和仪表盘;帮助用户快速探索和理解数据,并进行强大的数据分析和可视化

ElasticSearch8.X核心概念

在新版Elasticsearch中,文档document就是一行记录(json),而这些记录存在于索引库(index)中, 索引名称必须是小写,下面对比关系性数据库Mysql,好轻松理解相关概念

Mysql数据库 Elastic Search
Database 7.X版本前有Type,对比数据库中的表,新版取消了
Table Index
Row Document
Column Field

分片shards:数据量特大,没有足够大的硬盘空间来一次性存储,且一次性搜索那么多的数据,响应跟不上,2ES提供把数据进行分片存储,这样方便进行拓展和提高吞吐

副本replicas:分片的拷贝,当主分片不可用的时候,副本就充当主分片进行使用,索引分片的备份,shard和replica一般存储在不同的节点上,用来提高可靠性

元数据:Elasticsearch中以 “ _” 开头的属性都成为元数据,都有自己特定的意思

ES默认为一个索引创建1个主分片和1个副本,在创建索引的时候使用settings属性指定,每个分片必须有零到多个副本

注意:索引一旦创建成功,主分片primary shard数量不可以变(只能重建索引),副本数量可以改变

Linux服务器源码安装JDK17+ElasticSearch8.X实战(结尾有安装包

第一步:上传JDK17+ElasticSearch8.X相关安装包

第二步:安装JDK17

vim /etc/profile

#增加下面内容
JAVA_HOME=/usr/local/software/elk_test/jdk17
CLASSPATH=$JAVA_HOME/lib/
PATH=$PATH:$JAVA_HOME/bin
export PATH JAVA_HOME CLASSPATH

环境变量立刻生效
source /etc/profile

第三步:安装ElasticSearc8.X和配置相关

#上传安装包和解压
tar -zxvf elasticsearch-8.4.1-linux-x86_64.tar.gz

#新建一个用户,安全考虑,elasticsearch默认不允许以root账号运行
创建用户:useradd es_user
设置密码:passwd es_user

#修改目录权限
# chmod是更改文件的权限   
# chown是改改文件的属主与属组  
# chgrp只是更改文件的属组。


chgrp -R es_user /usr/local/software/elk_test/elasticsearch-8.4.1
chown -R es_user /usr/local/software/elk_test/elasticsearch-8.4.1
chmod -R  777 /usr/local/software/elk_test/elasticsearch-8.4.1

# 修改文件和进程最大打开数,需要root用户,如果系统本身有这个文件最大打开数和进程最大打开数配置,则不用
在文件内容最后添加后面两行(切记*不能省略)
vim /etc/security/limits.conf

* soft nofile 65536
* hard nofile 65536

#修改虚拟内存空间,默认太小
在配置文件中改配置 最后一行上加上,执行 sysctl -p(立即生效)
vim /etc/sysctl.conf

vm.max_map_count=262144

#修改elasticsearch的JVM内存,机器内存不足,常规线上推荐16到24G内存
vim config/jvm.options

-Xms1g
-Xmx1g

# 修改 elasticsearch相关配置
vim config/elasticsearch.yml

cluster.n
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值