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.mzph.cn/web/72779.shtml

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

相关文章

VIVO手机如何实现证件照换底色?证件照换底色技巧分享

在日常生活中,我们常常需要使用不同底色的证件照,无论是办理证件、提交资料还是其他用途,一张符合要求的证件照都显得尤为重要。 而VIVO手机凭借其强大的拍照功能和便捷的图片编辑工具,为我们提供了一种简单高效的证件照换底色解…

A SURVEY ON POST-TRAINING OF LARGE LANGUAGE MODELS——大型语言模型的训练后优化综述——第一部分

arXiv 2025 摘要 大型语言模型(LLMs)的出现从根本上改变了自然语言处理,使其在从对话系统到科学研究的各个领域中变得不可或缺。然而,它们的预训练架构在特定情境下经常显示出局限性,包括有限的推理能力、伦理不确定…

深入理解Python闭包与递归:原理、应用与实践

目录 闭包 什么是闭包: 闭包的基本结构: 实现闭包的条件: 1.嵌套函数 2.内函数引用外部函数的变量 3.外部函数返回内部函数 4.外部函数已经执行完毕 递归函数 什么是递归函数: 递归函数条件 1.必须有个明确的结束条…

【自学笔记】智能合约基础知识点总览-持续更新

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 智能合约基础知识点总览目录1. 智能合约简介2. 以太坊与Solidity示例代码:Hello World智能合约 3. Solidity基础语法示例代码:简单的计数器合…

ABAP PDF预览

画个屏幕 PDF JPG TXT都可以参考预览,把二进制流传递给标准函数就行 *&---------------------------------------------------------------------* *& Report YDEMO2 *&---------------------------------------------------------------------* *&am…

【视频】文本挖掘专题:Python、R用LSTM情感语义分析实例合集|上市银行年报、微博评论、红楼梦、汽车口碑数据采集词云可视化

原文链接:https://tecdat.cn/?p41149 分析师:Zhenzhen Liu,Shuai Fung 作为数据科学家,我们始终关注如何从非结构化数据中提取高价值信息。本专题合集聚焦企业年报的文本分析技术,通过Python与R语言实战案例&#xff…

高效团队开发的工具与方法 引言

引言 在现代软件开发领域,团队协作的效率和质量直接决定了项目的成败。随着项目规模的扩大和技术复杂度的增加,如何实现高效团队开发成为每个开发团队必须面对的挑战。高效团队开发不仅仅是个人技术能力的简单叠加,更需要借助合适的工具和方…

python中mysql操作整理

安装 Windows : pip install pymysql -i https://pypi.douban.com/simple mac :python3 -m pip install pymysql -i https://pypi.douban.com/simple mysql示例 import pymysql connect pymysql.Connect(host82.156.74.26,port3306,userroot,passwor…

Python----计算机视觉处理(Opencv:图像颜色替换)

一、开运算 开运算就是对图像先进行腐蚀操作, 然后进行膨胀操作。开运算可以去除二值化图中的小的噪点,并分离相连的物体。 其主要目的就是消除那些小白点 在开运算组件中,有一个叫做kernel的参数,指的是核的大小,通常…

基于SpringBoot的“ERP-物资管理”的设计与实现(源码+数据库+文档+PPT)

基于SpringBoot的“ERP-物资管理”的设计与实现(源码数据库文档PPT) 开发语言:Java 数据库:MySQL 技术:SpringBoot 工具:IDEA/Ecilpse、Navicat、Maven 系统展示 系统总体结构图 E-R实体关系图 管理员登录界面 管…

链表操作:分区与回文判断

目录 链表分区(Partition) 功能概述 代码实现 要点与难点 注意事项 链表回文判断(PalindromeList) 功能概述 代码实现 要点与难点 注意事项 总结 在链表相关的算法问题中,理解链表的基本结构和操作至关重要…

如何在 Node.js 中使用 .env 文件管理环境变量 ?

Node.js 应用程序通常依赖于环境变量来管理敏感信息或配置设置。.env 文件已经成为一种流行的本地管理这些变量的方法,而无需在代码存储库中公开它们。本文将探讨 .env 文件为什么重要,以及如何在 Node.js 应用程序中有效的使用它。 为什么使用 .env 文…

【Git学习笔记】Git结构原理及其分支管理模型分析

【Git学习笔记】Git结构原理及其分支管理模型分析 🔥个人主页:大白的编程日记 🔥专栏:Git学习笔记 文章目录 【Git学习笔记】Git结构原理及其分支管理模型分析前言一.认识工作区、暂存区、版本库1.1 版本回退1.2 撤销修改1.3 删…

Scheme语言的压力测试

Scheme语言的压力测试 引言 Scheme是一种广泛使用的函数式编程语言,它是Lisp语言家族的一员,以其简洁性和强大的表达能力而闻名。在现代软件开发中,施行压力测试是一项关键技术,旨在评估系统在高负载或极端情况下的表现。在这篇…

[特殊字符]Windows 11 安装 Git 图文教程(含详细配置说明)

Windows 11 安装 Git 图文教程(含详细配置说明) 本教程适用于 Git 新手,手把手教你如何在 Windows 11 上完整安装 Git 并正确配置,配图清晰,步骤明确,建议收藏! ✅ 第一步:下载 Git 安装包 访问官网:https://git-scm.com自动识别系统后点击下载或者直接前往:Git for …

简单以太网配置

display arp //查看路由器mac地址 交换机配置命令: system-view // 从用户视图进入系统视图 dis mac-address //查看mac地址表 路由器配置命令: system-view // 从用户视图进入系统视图 int GigabitEthernet 0/0/0 //进入G口 0/0/0 进入之后配置网关: ip addre…

【GPT入门】第25课 掌握 LangChain:链式调用的奥秘、特性与使用示例

【GPT入门】第25课 掌握 LangChain:链式调用的奥秘、特性与使用示例 语法解释各部分性质链式调用的性质调用方式注意事项 语法解释 你给出的代码 is_duplicated_chain (check_duplicated | model | parser) 运用了 LangChain 里的链式调用语法。在 LangChain 中&a…

二、vtkCommand的使用

一、概述 vtkCommand是VTK中的一个重要的类,用于处理事件和回调机制。它允许用户在特定事件发生时执行自定义的操作,例如在交互操作、数据更新或渲染过程中触发某些功能。 二、主要功能 1、事件处理:vtkCommand用于监听和处理VTK管线中的各…

配置集群-日志聚集操作

1.修改配置文件 <!-- 开启日志聚集功能 --> <property> <name>yarn.log-aggregation-enable</name> <value>true</value> </property> <!-- 设置日志聚集服务器地址 --> <property> <name>yarn.log.server.url&…

Linux系统上后门程序的原理细节,请仔细解释一下

在Linux系统上&#xff0c;后门程序通常通过隐蔽的方式绕过正常的安全机制&#xff0c;允许攻击者未经授权访问系统。以下是其工作原理的详细解释&#xff1a; 1. 隐蔽性 隐藏进程&#xff1a;后门程序常通过修改进程列表或使用rootkit技术隐藏自身&#xff0c;避免被ps、top…