ES 使用URL增删改查
文章目录
- 一、基础 URL 结构
 - 二、常用操作示例
 - 1. 创建索引
 - 2. 插入文档(新增数据)
 - 3. 指定 ID 插入文档
 - 4. 更新文档
 - 5. 查询文档
 - 5.1 全量查询
 - 5.2 条件查询
 
- 6. 删除文档
 - 7. 删除索引
 
- 三、高级操作
 - 1. 批量操作(Bulk API)
 - 2. 复合查询(Aggregation)
 
- 四、认证方式
 - 方法一:URL 中直接包含认证信息(生产环境不推荐)
 - 方法二:使用 HTTP 的 Basic 认证
 
在 Elasticsearch(简称 ES)中,可以通过 RESTful API 直接通过 URL 操作数据。以下是常见的 URL 操作示例及说明:
一、基础 URL 结构
Elasticsearch 的 API 遵循 REST 设计规范,URL 格式通常为:
http://<host>:<port>/<index>/<endpoint>
 
<host>: ES 服务地址(如localhost)。<port>: 默认9200。<index>: 索引名称(类似数据库中的表)。<endpoint>: 操作类型(如_search,_doc)。
二、常用操作示例
1. 创建索引
PUT http://localhost:9200/my_index
{"settings": {"number_of_shards": 1,"number_of_replicas": 0},"mappings": {"properties": {"name": { "type": "text" },"age": { "type": "integer" }}}
}
 
- 方法: 
PUT - 作用: 创建名为 
my_index的索引,并定义字段类型。 
2. 插入文档(新增数据)
POST http://localhost:9200/my_index/_doc
{"name": "Alice","age": 25
}
 
-  
方法:
POST -  
URL 说明:
_doc表示默认文档类型(ES 7.x+ 已废弃类型概念)。 -  
返回结果:
{ "_id": "some_id", "_index": "my_index", ... } 
3. 指定 ID 插入文档
PUT http://localhost:9200/my_index/_doc/1
{"name": "Bob","age": 30
}
 
- 方法: 
PUT - URL 说明: 末尾的 
1是文档的唯一 ID,若存在则覆盖。 
4. 更新文档
POST http://localhost:9200/my_index/_update/1
{"doc": {"age": 31}
}
 
- 方法: 
POST - URL 说明: 
1是文档 ID,doc表示部分更新字段。 
5. 查询文档
查询操作集合建议阅读《ES 使用URL查询的全面操作》
5.1 全量查询
GET http://localhost:9200/my_index/_search
{"query": {"match_all": {}}
}
 
- 方法: 
GET - 返回结果: 返回所有文档。
 
5.2 条件查询
GET http://localhost:9200/my_index/_search
{"query": {"match": { "name": "Alice" }}
}
 
- 方法: 
GET - 作用: 查找 
name字段包含 “Alice” 的文档。 
6. 删除文档
DELETE http://localhost:9200/my_index/_doc/1
 
- 方法: 
DELETE - 作用: 删除 ID 为 
1的文档。 
7. 删除索引
DELETE http://localhost:9200/my_index
 
- 方法: 
DELETE - 作用: 删除整个索引(包括所有文档)。
 
三、高级操作
1. 批量操作(Bulk API)
POST http://localhost:9200/my_index/_bulk
{ "index": { "_id": "2" } }
{ "name": "Charlie", "age": 28 }
{ "index": { "_id": "3" } }
{ "name": "David", "age": 35 }
 
- 方法: 
POST - 作用: 批量插入/更新文档,每两行为一组操作。
 
2. 复合查询(Aggregation)
GET http://localhost:9200/my_index/_search
{"size": 0,"aggs": {"avg_age": {"avg": { "field": "age" }}}
}
 
- 方法: 
GET - 作用: 计算所有文档的平均年龄。
 
四、认证方式
当ES设置了账号密码后, 需要进行认证
方法一:URL 中直接包含认证信息(生产环境不推荐)
格式为: PUT http://username:password@localhost:9200/your_index/_doc/1
方法二:使用 HTTP 的 Basic 认证
可以使用 ApiFox 或者 Postman , 在 Authorization选项卡中设置:
Type: Basic Auth
Username: your_username
Password: your_password
 
或者直接添加请求头也可以, 格式为: Authorization:Basic+空格+(账号:密码 的base64), 如
Authorization: Basic ZWxhc3RpYzpjaGFuZ2VtZQ==
 
如下图所示
 
