
天天
## 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):
```json
{}
```
### 说明:
* 这里我们使用 `PUT` 请求创建一个名为 `products` 的索引。
* 请求体为空 `{}` 即可创建索引。
### 操作步骤:
1. 打开 Postman,选择 `PUT` 方法。
2. 在 URL 栏中输入 `https://elasticsearch.lanmao168.heiyu.space/products`。
3. 选择 `Body`,并选择 `raw` 格式。
4. 在 `raw` 中选择 `JSON` 格式,内容写 `{}`。
5. 点击 `Send` 按钮发送请求。

如果索引创建成功,你会看到返回类似以下内容:
```json
{
"acknowledged": true,
"shards_acknowledged": true,
"index": "products"
}
```
---
## 2. 添加文档
### 请求方法:
* **POST**
### 请求 URL:
```
https://elasticsearch.lanmao168.heiyu.space/products/_doc/1
```
### 请求体(Body):
```json
{
"name": "Smartphone",
"brand": "BrandX",
"price": 699.99,
"category": "Electronics"
}
```
### 说明:
* 这里我们使用 `POST` 请求向 `products` 索引中添加一条文档。
* 文档 ID 是 `1`,内容是关于一款名为 `Smartphone` 的产品。
### 操作步骤:
1. 在 Postman 中,选择 `POST` 方法。
2. 在 URL 栏中输入 `https://elasticsearch.lanmao168.heiyu.space/products/_doc/1`。
3. 选择 `Body`,并选择 `raw` 格式。
4. 在 `raw` 中选择 `JSON` 格式,填入上面的文档内容。
5. 点击 `Send` 按钮发送请求。

如果文档添加成功,你会看到类似以下的返回:
```json
{
"_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):
```text
q=name:Smartphone
```
### 说明:
* 这里我们使用 `GET` 请求来查询 `products` 索引中所有 `name` 字段为 `Smartphone` 的文档。
### 操作步骤:
1. 在 Postman 中,选择 `GET` 方法。
2. 在 URL 栏中输入 `https://elasticsearch.lanmao168.heiyu.space/products/_search`。
3. 在 `Params` 标签下添加一个参数:
* **Key**: `q`
* **Value**: `name:Smartphone`
4. 点击 `Send` 按钮发送请求。

返回的结果类似如下:
```json
{
"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):
```json
{
"doc": {
"price": 799.99
}
}
```
### 说明:
* 这里我们使用 `PUT` 请求来更新文档 ID 为 `1` 的 `price` 字段。
### 操作步骤:
1. 在 Postman 中,选择 `PUT` 方法。
2. 在 URL 栏中输入 `https://elasticsearch.lanmao168.heiyu.space/products/_doc/1/_update`。
3. 选择 `Body`,并选择 `raw` 格式。
4. 在 `raw` 中选择 `JSON` 格式,填入需要更新的数据。
5. 点击 `Send` 按钮发送请求。

如果更新成功,你会看到返回的 JSON:
```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` 的文档。
### 操作步骤:
1. 在 Postman 中,选择 `DELETE` 方法。
2. 在 URL 栏中输入 `https://elasticsearch.lanmao168.heiyu.space/products/_doc/1`。
3. 点击 `Send` 按钮发送请求。

删除成功后,返回的响应如下:
```json
{
"_index": "products",
"_id": "1",
"_version": 3,
"result": "deleted",
"_shards": {
"total": 2,
"successful": 1,
"failed": 0
},
"_seq_no": 3,
"_primary_term": 1
}
```
---
## 总结
Elasticsearch 不是银弹,但在搜索和日志分析场景下,它确实是个利器。不管你是要做商品搜索、日志分析,还是实时监控,ES 都能帮你轻松搞定。
先用单机版本熟悉功能,有需要再扩展集群,掌握了 ES 的核心概念和使用技巧,你就能在数据的海洋中游刃有余。
## 相关资源 📚
- [Elasticsearch 官方文档](https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html)
- [GitHub 仓库](https://github.com/elastic/elasticsearch)
- [中文社区](https://elasticsearch.cn/)
- [Kibana 在线演示](https://demo.elastic.co/)
评论
0暂无评论