Elasticsearch操作脚本:从删除到创建
需积分: 0 191 浏览量
更新于2024-08-04
收藏 10KB TXT 举报
本文档提供了一些Elasticsearch(简称ES)的常用命令脚本,主要涉及索引的创建、删除以及查看等操作,同时也包含了一个深分页查询的示例。这对于后端工程师在日常开发中快速处理ES相关任务非常有帮助。
### Elasticsearch 常用命令脚本
#### 删除单个索引
```bash
curl -X DELETE 'localhost:9200/javashop_goods?pretty'
```
这个命令用于删除名为`javashop_goods`的索引。`-X DELETE`表示执行删除操作,`?pretty`则意味着返回的结果将以美化(pretty)的JSON格式显示。
#### 删除多个索引
```bash
curl -X DELETE 'localhost:9200/javashop_goods,blog?pretty'
```
此命令可以同时删除`javashop_goods`和`blog`两个索引。通过逗号分隔索引名,可以一次性操作多个索引。
#### 创建索引
```bash
curl -X PUT -H 'Content-Type:application/json' 'localhost:9200/javashop_goods?pretty' -d '
{
"settings":{
"index":{
"number_of_shards":1,
"number_of_replicas":0
}
},
"mappings":{
"goods":{
"properties":{
...
}
}
}
}'
```
这个脚本用于创建名为`javashop_goods`的索引,并定义了索引设置和映射(mappings)。`-H`参数指定请求头,表明内容类型为JSON。`number_of_shards`和`number_of_replicas`分别设置了分片数量和副本数量。`mappings`部分定义了索引中的文档结构,如`goods`类型及其属性。
#### 查看全部索引
要查看ES中的所有索引,可以使用以下命令:
```bash
curl 'localhost:9200/_cat/indices?v'
```
这将列出所有索引的信息,`_cat/indices`是ES的猫视图接口,`v`参数表示详细输出。
#### 查看特定索引
查看特定索引如`javashop_goods`的状态,可以运行:
```bash
curl 'localhost:9200/javashop_goods/_stats'
```
这将返回该索引的统计信息,包括文档数量、存储大小等。
#### 深分页查询
对于深分页查询,通常涉及到`from`和`size`参数,例如:
```bash
curl 'localhost:9200/javashop_goods/_search?pretty' -d '
{
"from": 100,
"size": 20
}'
```
这个查询会从第101条结果开始,返回20条数据。然而,由于ES的分页性能问题,对于大的`from`值,效率会降低。因此,如果需要处理大量数据的分页,建议考虑使用其他策略,如`scroll`或`search_after` API。
### Elasticsearch 知识点
- **索引(Index)**: ES中的数据存储单元,类似关系数据库中的数据库。
- **分片(Shard)**: 索引的物理存储单位,每个分片可以分布在集群的不同节点上,提高可扩展性和容错性。
- **副本分片(Replica Shard)**: 分片的备份,用于提高可用性和数据安全性。
- **映射(Mapping)**: 定义索引中字段的数据类型和其他配置,类似于数据库的表结构。
- **猫视图(Cat APIs)**: 提供简洁的文本输出,用于监控和管理ES实例。
- **搜索(Search)**: ES的核心功能,支持全文搜索、多字段查询、过滤等多种操作。
- **分页(Pagination)**: 通过`from`和`size`控制查询结果的范围,但高`from`值可能导致性能下降。
- **深分页解决方案**:`scroll` API用于高效的大数据量分页,而`search_after` API允许基于上一次查询结果的排序值进行分页。
这些命令和知识点对于理解并操作Elasticsearch非常重要,可以帮助开发者更高效地管理和使用ES集群。
湘王
- 粉丝: 115
- 资源: 2
最新资源
- 正整数数组验证库:确保值符合正整数规则
- 系统移植工具集:镜像、工具链及其他必备软件包
- 掌握JavaScript加密技术:客户端加密核心要点
- AWS环境下Java应用的构建与优化指南
- Grav插件动态调整上传图像大小提高性能
- InversifyJS示例应用:演示OOP与依赖注入
- Laravel与Workerman构建PHP WebSocket即时通讯解决方案
- 前端开发利器:SPRjs快速粘合JavaScript文件脚本
- Windows平台RNNoise演示及编译方法说明
- GitHub Action实现站点自动化部署到网格环境
- Delphi实现磁盘容量检测与柱状图展示
- 亲测可用的简易微信抽奖小程序源码分享
- 如何利用JD抢单助手提升秒杀成功率
- 快速部署WordPress:使用Docker和generator-docker-wordpress
- 探索多功能计算器:日志记录与数据转换能力
- WearableSensing: 使用Java连接Zephyr Bioharness数据到服务器