- 博客
- Elasticsearch 快速上手:让搜索变得简单有趣
Elasticsearch 快速上手:让搜索变得简单有趣
Elasticsearch 到底是啥?
简单来说,Elasticsearch(简称 ES)就是一个超级强大的搜索引擎。想象一下,你有几百万条数据,如果用传统数据库一条条找,可能要找到天荒地老。但用 ES,几毫秒就能搞定!
它就像是给你的数据装了个 Google 搜索引擎,不管是商品、日志、文章,还是用户信息,都能秒速查找。
谁在用它?
- 维基百科:全球最大的百科全书,搜索功能全靠它
- GitHub:代码搜索就是用的 ES
- Stack Overflow:程序员的救命稻草,问题搜索也是它
- 京东、淘宝:商品搜索背后的技术支撑
- 滴滴、美团:位置搜索、商家搜索都有它的身影
https://appstore.lazycat.cloud/#/shop/detail/xu.deploy.elasticsearch
如何使用?
截止到目前(2025 年 9 月 11 日 08:51:18),商店中的版本是一个单节点的服务,还没有集成看板功能,所以应用打开后,是这个页面:

上面是 Elasticsearch 服务启动后的欢迎页面,显示了当前节点和集群的状态、版本号(如 9.0.0)、集群名称(如 docker-cluster)等。这说明你的 Elasticsearch 实例已经运行,可以通过 API 进行数据操作和检索。
通过懒猫应用查看器,发现目前的验证是关闭的,不需要密码就能访问服务

查询集群健康状态
打开终端,输入命令
curl -X GET "https://elasticsearch.你的懒猫.heiyu.space/_cat/health?v"
如果成功,你将看到类似如下的返回结果,显示集群的状态、节点数量等信息:

查看所有索引
查看当前集群中所有的索引:
curl -X GET "https://elasticsearch.lanmao168.heiyu.space/_cat/indices?v"

这将列出所有的索引,包括它们的名称、状态等信息。我目前还没有数据,所以都是空的。
用命令行看起来有点费劲,下面我用 postman 演示功能。注意lanmao168 是我的微服,需要你改成自己的。
1. 创建索引
请求方法:
- PUT
请求 URL:
https://elasticsearch.lanmao168.heiyu.space/products
请求体(Body):
{}
说明:
- 这里我们使用
PUT请求创建一个名为products的索引。 - 请求体为空
{}即可创建索引。
操作步骤:
- 打开 Postman,选择
PUT方法。 - 在 URL 栏中输入
https://elasticsearch.lanmao168.heiyu.space/products。 - 选择
Body,并选择raw格式。 - 在
raw中选择JSON格式,内容写{}。 - 点击
Send按钮发送请求。
如果索引创建成功,你会看到返回类似以下内容:
{
"acknowledged": true,
"shards_acknowledged": true,
"index": "products"
}
2. 添加文档
请求方法:
- POST
请求 URL:
https://elasticsearch.lanmao168.heiyu.space/products/_doc/1
请求体(Body):
{
"name": "Smartphone",
"brand": "BrandX",
"price": 699.99,
"category": "Electronics"
}
说明:
- 这里我们使用
POST请求向products索引中添加一条文档。 - 文档 ID 是
1,内容是关于一款名为Smartphone的产品。
操作步骤:
- 在 Postman 中,选择
POST方法。 - 在 URL 栏中输入
https://elasticsearch.lanmao168.heiyu.space/products/_doc/1。 - 选择
Body,并选择raw格式。 - 在
raw中选择JSON格式,填入上面的文档内容。 - 点击
Send按钮发送请求。
如果文档添加成功,你会看到类似以下的返回:
{
"_index": "products",
"_id": "1\n",
"_version": 1,
"result": "created",
"_shards": {
"total": 2,
"successful": 1,
"failed": 0
},
"_seq_no": 0,
"_primary_term": 1
}
3. 查询文档
请求方法:
- GET
请求 URL:
https://elasticsearch.lanmao168.heiyu.space/products/_search
请求参数(Params):
q=name:Smartphone
说明:
- 这里我们使用
GET请求来查询products索引中所有name字段为Smartphone的文档。
操作步骤:
-
在 Postman 中,选择
GET方法。 -
在 URL 栏中输入
https://elasticsearch.lanmao168.heiyu.space/products/_search。 -
在
Params标签下添加一个参数:- Key:
q - Value:
name:Smartphone
- Key:
-
点击
Send按钮发送请求。
返回的结果类似如下:
{
"took": 283,
"timed_out": false,
"_shards": {
"total": 1,
"successful": 1,
"skipped": 0,
"failed": 0
},
"hits": {
"total": {
"value": 1,
"relation": "eq"
},
"max_score": 0.2876821,
"hits": [
{
"_index": "products",
"_id": "1\n",
"_score": 0.2876821,
"_source": {
"name": "Smartphone",
"brand": "BrandX",
"price": 699.99,
"category": "Electronics"
}
}
]
}
}
4. 更新文档
请求方法:
- PUT
请求 URL:
https://elasticsearch.lanmao168.heiyu.space/products/_doc/1
请求体(Body):
{
"doc": {
"price": 799.99
}
}
说明:
- 这里我们使用
PUT请求来更新文档 ID 为1的price字段。
操作步骤:
- 在 Postman 中,选择
PUT方法。 - 在 URL 栏中输入
https://elasticsearch.lanmao168.heiyu.space/products/_doc/1/_update。 - 选择
Body,并选择raw格式。 - 在
raw中选择JSON格式,填入需要更新的数据。 - 点击
Send按钮发送请求。
如果更新成功,你会看到返回的 JSON:
{
"_index": "products",
"_id": "1",
"_version": 1,
"result": "created",
"_shards": {
"total": 2,
"successful": 1,
"failed": 0
},
"_seq_no": 1,
"_primary_term": 1
}
5. 删除文档
请求方法:
- DELETE
请求 URL:
https://elasticsearch.lanmao168.heiyu.space/products/_doc/1
说明:
- 使用
DELETE方法删除products索引中 ID 为1的文档。
操作步骤:
- 在 Postman 中,选择
DELETE方法。 - 在 URL 栏中输入
https://elasticsearch.lanmao168.heiyu.space/products/_doc/1。 - 点击
Send按钮发送请求。
删除成功后,返回的响应如下:
{
"_index": "products",
"_id": "1",
"_version": 3,
"result": "deleted",
"_shards": {
"total": 2,
"successful": 1,
"failed": 0
},
"_seq_no": 3,
"_primary_term": 1
}
总结
Elasticsearch 不是银弹,但在搜索和日志分析场景下,它确实是个利器。不管你是要做商品搜索、日志分析,还是实时监控,ES 都能帮你轻松搞定。
先用单机版本熟悉功能,有需要再扩展集群,掌握了 ES 的核心概念和使用技巧,你就能在数据的海洋中游刃有余。
