Elasticsearch 入门教程:基础概念与安装指南
一、什么是 Elasticsearch?
Elasticsearch 是一个开源的分布式搜索引擎,基于 Apache Lucene 构建,能够实现以下功能:
✅ 全文搜索
✅ 结构化搜索
✅ 数据分析
✅ 实时数据处理
Elasticsearch 最早由 Shay Banon 在 2010 年发布,最初是为了满足快速搜索的需求。由于其出色的性能和扩展性,Elasticsearch 已成为大数据领域中常用的搜索与分析工具之一。
二、Elasticsearch 的核心概念
在使用 Elasticsearch 之前,了解以下几个核心概念会帮助你快速上手:
1. 索引(Index)
索引相当于数据库中的 "表"
每个索引由多个文档组成
每个索引都有一个唯一的名称
👉 示例
PUT /my_index{ "settings": { "number_of_shards": 1, "number_of_replicas": 1 }}
上述命令创建了一个名为 my_index
的索引,包含 1 个分片(Shard)和 1 个副本(Replica)。
2. 文档(Document)
文档是索引中的数据项,类似于数据库中的一行记录
文档以 JSON 格式存储
每个文档有一个唯一的 ID
👉 示例
POST /my_index/_doc/1{ "title": "Elasticsearch入门", "author": "码农资讯网", "published_date": "2025-03-11"}
这将创建一个新的文档,存储在 my_index
索引中,ID 为 1
。
3. 类型(Type)
Elasticsearch 7.x 之后已废弃 Type 概念
以前一个索引可以包含多个 Type(类似于关系型数据库中的表)
现在每个索引只能包含一种类型的数据
4. 映射(Mapping)
映射是索引中字段的定义
定义字段的类型和属性(如字符串、日期、数字等)
👉 示例
PUT /my_index/_mapping{ "properties": { "title": { "type": "text" }, "author": { "type": "keyword" }, "published_date": { "type": "date" } }}
上述代码定义了 my_index
的映射结构。
5. 分片(Shard)与副本(Replica)
分片(Shard):
Elasticsearch 将索引拆分成多个分片
每个分片都可以独立存储和查询
可在不同节点中进行分布式存储
副本(Replica):
每个分片可以创建多个副本
提高了数据的冗余性和查询效率
三、Elasticsearch 的特点
✅ 实时搜索 – 在数据插入或更新后,几乎可以立即进行搜索
✅ 分布式架构 – 能够在集群中水平扩展
✅ 高性能 – 支持 PB 级别数据的秒级查询
✅ RESTful API – 提供完整的 RESTful 接口,方便集成和开发
✅ 全文检索 – 支持复杂的查询条件,支持分词、模糊查询、多字段查询等
四、安装 Elasticsearch
1. 安装 Java 环境
Elasticsearch 基于 Java 开发,因此需要安装 Java 运行环境(JDK):
sudo apt update sudo apt install openjdk-11-jdk -y
查看 Java 版本:
java -version
2. 下载并安装 Elasticsearch
① 下载安装包
进入 Elasticsearch 官方下载地址 下载最新版本:
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.11.3-linux-x86_64.tar.gz
② 解压安装包
tar -xzf elasticsearch-8.11.3-linux-x86_64.tar.gzcd elasticsearch-8.11.3
3. 启动 Elasticsearch
使用以下命令启动 Elasticsearch:
./bin/elasticsearch
在浏览器中访问:
http://localhost:9200
如果出现如下内容,说明 Elasticsearch 启动成功:
{ "name" : "your-server-name", "cluster_name" : "elasticsearch", "cluster_uuid" : "x3Hyfg3TTe-wjSK3f9-dFw", "version" : { "number" : "8.11.3", "build_flavor" : "default", "build_type" : "tar", "build_hash" : "cf29e13", "build_date" : "2025-03-11T10:24:33.123456Z", "build_snapshot" : false, "lucene_version" : "9.8.0", "minimum_wire_compatibility_version" : "8.0.0", "minimum_index_compatibility_version" : "8.0.0" }}
4. 配置开机自启动
为了确保 Elasticsearch 在服务器重启后自动运行,可以将其设置为系统服务:
sudo cp -f elasticsearch.service /etc/systemd/system/ sudo systemctl daemon-reload sudo systemctl enable elasticsearch sudo systemctl start elasticsearch
五、Elasticsearch 常用操作
1. 创建索引
curl -X PUT "localhost:9200/my_index"
2. 插入数据
curl -X POST "localhost:9200/my_index/_doc/1" -H 'Content-Type: application/json' -d' { "title": "Elasticsearch基础教程", "author": "码农资讯网", "published_date": "2025-03-11" }'
3. 查询数据
curl -X GET "localhost:9200/my_index/_search?q=title:Elasticsearch"
4. 删除索引
curl -X DELETE "localhost:9200/my_index"
六、常见问题
🔹 1. Elasticsearch 启动失败?
查看日志文件:
cat logs/elasticsearch.log
可能是由于内存不足、端口冲突或 Java 版本不兼容。
🔹 2. 9200 端口被占用?
查看占用端口的进程:
sudo netstat -tulnp | grep 9200
结束进程:
sudo kill -9 PID
🔹 3. Elasticsearch 无法写入数据?
检查文件权限:
chmod -R 777 elasticsearch-8.11.3
七、总结
Elasticsearch 是一个强大的分布式搜索引擎,具备实时搜索、高性能、可扩展等特点。通过本教程,你已经掌握了 Elasticsearch 的核心概念、安装配置以及常用操作。
👉 快去用 Elasticsearch 打造自己的搜索引擎吧! 😎
1、部分文章来源于网络,仅作为参考。 2、如果网站中图片和文字侵犯了您的版权,请联系1943759704@qq.com处理!