"这是一份关于 ElasticSearch (ES) 的学习笔记,主要涵盖了在 Kibana 6.5.0 版本中的常见操作,包括增删改查基础操作和 ES 的一些基本概念。"
在 Elasticsearch (ES) 中,你可以通过 Kibana 进行数据的管理与分析。这份笔记首先提到了在 Linux 环境下,你可以使用 `curl` 命令来检查 ES 服务是否在线,例如 `curl IP:9200`,如果返回正常,表示 ES 服务已经启动并监听在 9200 端口。
查询结果的评分机制是基于相关性计算的,一个文档的分词后包含的命中次数越多,它的评分(_score)就越高,这在 ES 的全文检索中扮演了关键角色。
在 Kibana 中进行 CRUD 操作:
1. 创建索引:使用 `PUT` 请求,如创建名为 `lib` 的索引,可以通过以下 JSON 格式定义设置:
```
PUT /lib/
{
"settings": {
"index": {
"number_of_shards": 3,
"number_of_replicas": 0
}
}
}
```
分片(shards)和副本(replicas)的设置影响数据分布和容错能力,如果不指定,默认会使用 ES 配置的默认值。
2. 查看索引配置:可以使用 `GET` 请求获取索引设置,例如查看 `lib` 索引的配置:
```
GET /lib/_settings
```
要查看所有索引的配置,可以使用:
```
GET /_all/_settings
```
3. 创建文档:可以使用 `PUT` 或 `POST` 请求,`PUT` 需要指定文档 ID,例如创建一个用户文档:
```
PUT /lib/user/1
{
"first_name": "Jane",
"last_name": "Smith",
"age": 32,
"about": "I like to collect rock albums",
"interests": ["music"]
}
```
如果不指定 ID,可以使用 `POST` 让 ES 自动生成 ID。
4. 获取文档:使用 `GET` 请求获取指定 ID 的文档,如获取用户 1 的信息:
```
GET /lib/user/1
```
若要获取特定字段,如 `age` 和 `about`,可以添加 `_source` 参数:
```
GET /lib/user/1?_source=age,about
```
5. 更新文档:更新文档有两种方法:
- 覆盖更新:使用 `PUT` 完全替换文档内容:
```
PUT /lib/user/1
{
"first_name": "Jane",
"last_name": "Smith",
"age": 35,
"about": "I like to collect rock albums",
"interests": ["music"]
}
```
- 修改更新:使用 `POST` 结合 `_update` 更新特定字段:
```
POST /lib/user/1/_update
{
"doc": {
"age": 35
}
}
6. 删除文档:使用 `DELETE` 请求删除指定 ID 的文档:
```
DELETE /lib/user/1
```
7. 删除索引:同样使用 `DELETE` 请求,但针对整个索引:
```
DELETE /lib2
```
8. 批量获取文档:可以使用 `_mget` API 来批量获取多个文档的部分字段,需要提供索引、类型和 ID:
```
GET /_mget
{
"docs": [
{
"_index": "lib",
"_type": "user",
"_id": 1,
"_source": ["interests", "age"]
},
...
]
}
```
这份笔记详细介绍了 ES 的基础操作,对于初学者来说是一个很好的学习资料,可以帮助理解 ES 的核心概念和工作原理。