Elasticsearch 入门基础学习
一、什么是 Elasticsearch?
Elasticsearch 是一个分布式的全文搜索和分析引擎,基于 Apache Lucene 构建。它通常用于以下场景:
• 全文搜索:如电商站点的商品搜索。
• 日志和监控分析:结合 Filebeat 和 Logstash,可以进行实时日志采集与分析。
• 数据分析:处理海量数据并生成统计报表。
其特点包括:
• 分布式架构,支持大规模数据存储。
• RESTful API,易于集成。
• 支持近实时搜索(Near Real-Time,NRT)。
二、Elasticsearch 核心概念
在使用 Elasticsearch 之前,理解以下核心概念非常重要:
1. Index(索引)
相当于关系型数据库中的“数据库”,是数据的逻辑分组。每个索引可以包含多个文档。
2. Document(文档)
Elasticsearch 中存储的基本单元,相当于关系型数据库中的“行”,以 JSON 格式存储。
3. Shard(分片)和 Replica(副本)
• 分片:将索引拆分成多个部分,分散存储到不同节点上。
• 副本:分片的备份,提高数据的可靠性和查询性能。
5. Cluster(集群)
由多个节点组成的系统,共同处理数据存储和查询。
5. Node(节点)
集群中的单个实例,可以承担不同的角色,如 Master 节点、Data 节点。
三、安装 Elasticsearch
以下是 Elasticsearch 的基本安装步骤(以 7.12.1 版本为例):
1. 下载
访问 Elasticsearch 官方网站:https://www.elastic.co/downloads/elasticsearch,根据操作系统下载对应版本。
2. 安装和启动
Windows 系统:
• 解压下载的压缩包。
• 在 bin 目录下运行以下命令启动:
elasticsearch.bat
• 默认监听端口为 9200,打开浏览器访问 http://localhost:9200,看到版本信息即为成功。
Linux 系统:
• 解压压缩包:
tar -xzf elasticsearch-7.12.1-linux-x86_64.tar.gz
cd elasticsearch-7.12.1
• 启动服务:
./bin/elasticsearch
• 同样访问 http://localhost:9200 检查服务是否正常。
四、基本操作
1. 创建索引
使用 PUT 方法创建一个索引:
curl -X PUT "localhost:9200/my_index"
2. 插入文档
插入一条文档数据到索引:
curl -X POST "localhost:9200/my_index/_doc/1" -H 'Content-Type: application/json' -d'
{
"name": "Elasticsearch",
"type": "Search Engine",
"version": 7.12
}'
3. 查询文档
查询特定文档:
curl -X GET "localhost:9200/my_index/_doc/1"
4. 更新文档
更新文档内容:
curl -X POST "localhost:9200/my_index/_update/1" -H 'Content-Type: application/json' -d'
{
"doc": {
"version": 7.12.1
}
}'
5. 删除文档
删除特定文档:
curl -X DELETE "localhost:9200/my_index/_doc/1"
五、Kibana 使用(可视化工具)
Kibana 是 Elasticsearch 的可视化工具,可以帮助用户快速分析数据和创建图表。
1. 下载并安装 Kibana:https://www.elastic.co/downloads/kibana。
2. 配置 kibana.yml 文件中的 Elasticsearch 地址:
elasticsearch.hosts: ["http://localhost:9200"]
3. 启动服务并访问 http://localhost:5601。
六、扩展学习
1. 结合 Filebeat 和 Logstash
用于日志采集和处理。
2. 分片和副本优化
学习如何调整分片和副本的数量以提高性能。
3. 监控与告警
配置 Elasticsearch 的监控功能,了解节点状态和性能指标。
七、总结
Elasticsearch 是一个功能强大且易于扩展的搜索和分析引擎。通过本文的学习,你已经掌握了基本概念、安装和常用操作。接下来可以继续深入学习高级功能,例如索引模板、查询 DSL 和数据建模。