Elasticsearch操作脚本:从删除到创建

需积分: 0 3 下载量 146 浏览量 更新于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集群。