Elasticsearch基础教程:从入门到上手

🎯 一、Elasticsearch简介

Elasticsearch(简称ES)是一个分布式、RESTful风格的搜索引擎,支持全文检索、结构化查询、分析和近实时搜索。常用于日志分析、商品搜索、数据分析等场景。

1. 什么是 Elasticsearch?

Elasticsearch 是一个基于 Lucene 的开源搜索引擎,通常用于实时分布式搜索和数据分析。它支持各种类型的数据索引,包括文本、数字、日期等,可以用于实现高效的搜索、日志分析、实时监控等应用。

2. Elasticsearch 的核心概念
  • 索引(Index):类似数据库中的表,用于存储文档。
  • 文档(Document):存储数据的基本单位,类似于数据库中的行。
  • 字段(Field):文档中的数据项,类似数据库中的列。
  • 节点(Node):运行 Elasticsearch 实例的服务器。
  • 集群(Cluster):多个节点组成的 Elasticsearch 集合。

🛠️ 二、环境安装

1️⃣ 下载Elasticsearch

前往官网下载对应版本。

2️⃣ 启动ES

解压后直接运行:

./bin/elasticsearch

默认访问地址:http://localhost:9200


🔧 三、基本操作

1️⃣ 创建索引

PUT /products
{"settings": {"number_of_shards": 1,"number_of_replicas": 1},"mappings": {"properties": {"name": { "type": "text" },"price": { "type": "float" },"stock": { "type": "integer" }}}
}

2️⃣ 添加数据

POST /products/_doc/1
{"name": "iPhone 13","price": 6999,"stock": 50
}

3️⃣ 查询数据

GET /products/_search
{"query": {"match": { "name": "iPhone" }}
}

4️⃣ 更新数据

POST /products/_update/1
{"doc": { "stock": 45 }
}

5️⃣ 删除数据

🔥 四、进阶查询

1️⃣ 条件组合查询

GET /products/_search
{"query": {"bool": {"must": [ { "match": { "name": "iPhone" }} ],"filter": [ { "range": { "price": { "gte": 5000 }}} ]}}
}

2️⃣ 聚合分析

GET /products/_search
{"aggs": {"average_price": { "avg": { "field": "price" }}}
}

🚀 五、进阶版:复杂查询、Mapping映射、分词器、性能调优

1️⃣ 全文检索与多字段查询

GET /products/_search
{"query": {"multi_match": {"query": "iPhone","fields": ["name", "description"]}}
}

2️⃣ 自定义Mapping映射

PUT /products
{"mappings": {"properties": {"name": { "type": "text", "analyzer": "standard" },"description": { "type": "text", "analyzer": "ik_max_word" }}}
}

3️⃣ 分词器调试

GET /_analyze
{"analyzer": "ik_max_word","text": "Elasticsearch 中文教程"
}

4️⃣ 性能调优

  • 合理分片与副本设置

  • 关闭不必要的字段存储

  • 利用doc_values提升聚合性能

  • 定期优化索引与清理旧数据

六、Kibana入门

Kibana是Elasticsearch的可视化工具,可以帮助我们更直观地管理数据、创建图表。

1️⃣ 下载与启动Kibana

从官网下载并解压,运行:

./bin/kibana

访问:http://localhost:5601

2️⃣ 连接Elasticsearch

在Kibana的管理页面配置ES地址,确保能连接到 http://localhost:9200

3️⃣ 数据查询与可视化

  • Dev Tools:可以直接输入ES查询语句。

  • Discover:快速查看索引数据。

  • Visualize:创建图表,如柱状图、饼图等。

  • Dashboard:将多个图表整合成一个面板,方便展示。


🛠️ 七、Logstash入门

Logstash 是 Elastic Stack 数据采集与处理组件,常用于将数据从各种来源(如日志文件、数据库等)收集、转换并传输到 Elasticsearch。

1️⃣ 下载与安装Logstash

前往官网下载对应版本并解压。

2️⃣ 编写简单Logstash配置

创建一个配置文件 logstash-simple.conf,内容如下:

input {file {path => "/var/log/syslog"start_position => "beginning"}
}filter {grok {match => { "message" => "%{TIMESTAMP_ISO8601:timestamp} %{LOGLEVEL:loglevel} %{GREEDYDATA:message}" }}
}output {elasticsearch {hosts => ["localhost:9200"]index => "logs-%{+YYYY.MM.dd}"}stdout { codec => rubydebug }
}

3️⃣ 启动Logstash

./bin/logstash -f logstash-simple.conf

4️⃣ 检查Elasticsearch

GET /logs-*/_search

确认日志数据是否成功传入。

🔥 八、Beats数据采集入门

Beats是轻量级的数据采集工具,可以从服务器、容器、网络等采集不同类型的数据。

1️⃣ 下载Filebeat

前往官网下载Filebeat。

2️⃣ 配置Filebeat

编辑 filebeat.yml 文件,指定输入日志路径和输出Elasticsearch地址:

filebeat.inputs:- type: logenabled: truepaths:- /var/log/*.logoutput.elasticsearch:hosts: ["localhost:9200"]

3️⃣ 启动Filebeat

./filebeat -e

4️⃣ 查看采集数据

GET /filebeat-*/_search

确认日志是否成功传入ES。


🔥 九、性能优化小贴士

1️⃣ 设置索引合理分片:创建时根据数据量决定分片数量,避免过多小索引。

2️⃣ 禁用不必要的字段_source_all等字段按需关闭,减少存储开销。

3️⃣ 合理使用缓存:缓存热数据查询结果,提升响应速度。


🎉 十、总结

Elasticsearch在数据检索和分析领域非常强大,简单易用又灵活。结合Kibana、Logstash和Beats,能更高效地管理和处理数据。希望这篇基础版教程能让你快速入门Elastic Stack。

🚀 记得点赞👍、收藏⭐、评论💬,更多干货等着你!

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

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

相关文章

基于Rockylinux9.5(LTS-SP4)安装MySQL Community Server 9.2.0

目录 一、安装环境及准备 1、linux操作系统环境 2、MYSQL安装包准备 二、执行安装 1、解压软件包 2、按顺序执行软件包的安装 3、启动MYSQL服务 4.配置MYSQL 一、安装环境及准备 1、linux操作系统环境 Rocky linux9.5安装在VMware虚拟机上完成Rocky linux9.5安装&am…

分布式任务调度

今天我们讲讲分布式定时任务调度—ElasticJob。 一、概述 1、什么是分布式任务调度 我们可以思考⼀下下⾯业务场景的解决⽅案: 某电商平台需要每天上午10点,下午3点,晚上8点发放⼀批优惠券 某银⾏系统需要在信⽤卡到期还款⽇的前三天进⾏短信提醒 某…

Blender标注工具

按住键盘D键 鼠标左键绘制 / 右键擦除 也可以在上方选择删除

Second Me:在 AI 中保留自我的火种丨社区来稿

今天想和所有朋友们分享一种全新的 AI 可能性,Second Me! 2025年了,很多人和我一样,都越来越确信,AGI 的到来只是一个时间问题。 然而我也经常想,当我们所有人,都心甘情愿地为自己“造神” –…

仿新浪微博typecho主题源码

源码介绍 仿新浪微博typecho主题源码,简约美观,适合做个人博客,该源码为主题模板,需要先搭建typecho,然后吧源码放到对应的模板目录下,后台启用即可 源码特点 支持自适应 个性化程度高 可设置背景图、顶…

Ubuntu24搭建k8s高可用集群

Ubuntu24搭建k8s高可用集群 环境信息 主机名IPk8s版本备注vm-master192.168.103.2501.28.2master1vm-master2192.168.103.2491.28.2master2vm-master3192.168.103.2541.28.2master3vm-node1192.168.103.2511.28.2node1vm-node2192.168.103.2521.28.2node2 容器进行时&#xf…

洛谷P1216 [IOI 1994] 数字三角形 Number Triangles(动态规划)

P1216 [IOI 1994] 数字三角形 Number Triangles - 洛谷 代码区&#xff1a; #include<algorithm> #include<iostream>using namespace std; const int R 1005; int dp[R][R]; int arr[R][R]; int main() {int n;cin >> n;for (int i 1; i < n; i) {for…

Spring Boot Actuator 自定义健康检查(附Demo)

目录 前言1. Demo2. 拓展 前言 &#x1f91f; 找工作&#xff0c;来万码优才&#xff1a;&#x1f449; #小程序://万码优才/r6rqmzDaXpYkJZF Spring Boot 的 actuator 提供了应用监控的功能&#xff0c;其中健康检查&#xff08;Health Check&#xff09;是一个重要的部分&…

2025年优化算法:人工旅鼠算法(Artificial lemming algorithm,ALA)

人工旅鼠算法(Artificial lemming algorithm&#xff0c;ALA)是发表在中科院二区期刊“ARTIFICIAL INTELLIGENCE REVIEW”&#xff08;IF&#xff1a;11.7&#xff09;的2025年智能优化算法 01.引言 随着信息技术与工程科学的快速发展&#xff0c;现代优化问题呈现出高维、非线…

「实战指南 」Swift 并发中的任务取消机制

网罗开发 &#xff08;小红书、快手、视频号同名&#xff09; 大家好&#xff0c;我是 展菲&#xff0c;目前在上市企业从事人工智能项目研发管理工作&#xff0c;平时热衷于分享各种编程领域的软硬技能知识以及前沿技术&#xff0c;包括iOS、前端、Harmony OS、Java、Python等…

实验12深度学习

实验12深度学习 一、实验目的 &#xff08;1&#xff09;理解并熟悉深度神经网络的工作原理&#xff1b; &#xff08;2&#xff09;熟悉常用的深度神经网络模型及其应用环境&#xff1b; &#xff08;3&#xff09;掌握Anaconda的安装和设置方法&#xff0c;进一步熟悉Jupyte…

【问题解决】Postman 测试报错 406

现象 Tomcat 日志 org.springframework.web.servlet.handler.AbstractHandlerExceptionResolver.logException Resolved org.springframework.web.HttpMediaTypeNotAcceptableException: No acceptable representation HTTP状态 406 - 不可接收 的报错&#xff0c;核心原因 客…

微信小程序:用户拒绝小程序获取当前位置后的处理办法

【1】问题描述&#xff1a; 小程序在调用 wx.getLocation() 获取用地理位置时&#xff0c;如果用户选择拒绝授权&#xff0c;代码会直接抛出错误。如果再次调用 wx.getLocation() 时&#xff0c;就不会在弹窗询问用户是否允许授权。导致用户想要重新允许获取地理位置时&#x…

【MySQL】内置函数

目录 一、日期时间函数1.1 简单使用1.2 案例实操 二、字符串函数2.1 简单使用2.2 案例实践2.2.1 获取emp表的ename列的字符集2.2.2 要求显示exam_result表中的信息&#xff0c;显示格式&#xff1a;“XXX的语文是XXX分&#xff0c;数学XXX分&#xff0c;英语XXX分”2.2.3 求exa…

模块二 单元4 安装AD+DC

模块二 单元4 安装ADDC 两个任务&#xff1a; 1.安装AD活动目录 2.升级当前服务器为DC域控制器 安装前的准备工作&#xff1a; 确定你要操作的服务器系统&#xff08;Windows server 2022&#xff09;&#xff1b; 之前的服务器系统默认是工作组的模式workgroup模式&#xff08…

卫星互联网智慧杆:开启智能城市新时代​

哇哦&#xff01;在当下这个数字化浪潮正以雷霆万钧之势席卷全球的超酷时代&#xff0c;智慧城市建设已然成为世界各国你追我赶、竞相发力的核心重点领域啦&#xff01;而咱们的卫星互联网智慧杆&#xff0c;作为一项完美融合了卫星通信与物联网顶尖技术的创新结晶&#xff0c;…

ThreadLocal 的详细使用指南

一、ThreadLocal 核心原理 ThreadLocal 是 Java 提供的线程绑定机制&#xff0c;为每个线程维护变量的独立副本。其内部通过 ThreadLocalMap 实现&#xff0c;每个线程的 Thread 对象都有一个独立的 ThreadLocalMap&#xff0c;存储以 ThreadLocal 对象为键、线程局部变量为值…

免费开源的NAS解决方案:TrueNAS

TrueNAS是业内知名的FreeNAS系统的升级版&#xff0c;是一款开源的网络存储系统&#xff0c;具有高性能、稳定性和易用性等优点。 TrueNAS目前有三个版本&#xff0c;分别是TrueNAS CORE、TrueNAS ENTERPRISE、TrueNAS SCALE。其中&#xff0c;TrueNAS CORE基于FreeBSD开发&…

Fisher 信息矩阵公式原理:使用似然估计,二阶导数等知识点

Fisher 信息矩阵公式原理:使用似然估计,二阶导数等知识点 目录 Fisher 信息矩阵公式原理:使用似然估计,二阶导数等知识点Fisher 通过似然估计求解真实数据和权重参数之间的差异**1. Fisher 信息矩阵的定义****2. 计算对数似然函数的二阶导数****3. 代入 Fisher 信息矩阵定义…

自定义myshell(精讲)

我们都知道&#xff0c;我们给Linux下发的指令都是shell帮我们处理并完成的&#xff0c;那么他是怎么完成的呢&#xff1f;不难想到他都是通过环境变量以及程序替换来完成的。我们这一篇文章就手把手来教你怎么自己实现一个简单的shell。 目标&#xff1a; 1.要能处理普通命令 …