欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 维修 > Elasticsearch : RESTful API的基本操作(CRUD)

Elasticsearch : RESTful API的基本操作(CRUD)

2025/2/22 20:03:20 来源:https://blog.csdn.net/m0_75236543/article/details/145715435  浏览:    关键词:Elasticsearch : RESTful API的基本操作(CRUD)

Elasticsearch 提供了一个强大的 RESTful API,允许用户通过 HTTP 协议与其进行交互,执行各种操作,如索引文档、搜索文档、创建和管理索引等。以下是关于 Elasticsearch REST API 的一些基本操作及其语法:

1. 创建索引

创建一个名为 my_index 的索引:

PUT /my_index

你也可以在创建索引时定义其映射:

PUT /my_index
{"mappings": {"properties": {"field1": { "type": "text" },"field2": { "type": "keyword" },"field3": { "type": "integer" }}}
}

2. 索引文档

向 my_index 索引中添加一个文档,指定文档ID为 1

PUT /my_index/_doc/1
{"user": "张三","post_date": "2023-09-01","message": "这是一个测试文档。"
}


 

3. 搜索文档

在 my_index 中搜索文档,使用简单的查询:

GET /my_index/_search
{"query": {"match": {"field1": "value1"}}
}

如果你想搜索所有文档:

GET /my_index/_search
{"query": {"match_all": {}}
}

4. 更新文档

更新 my_index 索引中ID为 1 的文档的部分字段:

POST /my_index/_update/1
{"doc": {"field2": "新的value2"}
}

5. 删除文档

删除 my_index 索引中ID为 1 的文档:

DELETE /my_index/_doc/1

6. 删除索引

删除名为 my_index 的索引:

DELETE /my_index

7. 获取文档

获取 my_index 索引中ID为 1 的文档:

GET /my_index/_doc/1

8. 批量操作

使用 _bulk API 进行批量索引、更新或删除操作。例如:

POST /_bulk
{ "index" : { "_index" : "my_index", "_id" : "1" } }
{ "field1" : "value1", "field2" : "value2", "field3" : 123 }
{ "delete" : { "_index" : "my_index", "_id" : "2" } }
{ "create" : { "_index" : "my_index", "_id" : "3" } }
{ "field1" : "value3", "field2" : "value4", "field3" : 456 }

9. 聚合查询

在 my_index 中执行聚合查询以获取统计数据:

GET /my_index/_search
{"size": 0,"aggs": {"agg_name": {"terms": {"field": "field2"}}}
}

10. 分页查询

执行分页搜索以获取特定范围内的文档:

GET /my_index/_search
{"query": {"match_all": {}},"from": 0,  // 从第0个文档开始"size": 10  // 返回10个文档
}

11.Elasticsearch 使用标准的 HTTP 方法(GET、POST、PUT、DELETE等)

  1. GET:用于从 Elasticsearch 获取数据。它可以用来检索文档、索引的元数据、集群的健康状态等。

    • 检索文档:GET /索引名/类型名/文档ID 这条命令会返回指定索引、类型和 ID 的文档。
    • 检索索引的映射:GET /索引名/_mapping 用于查看索引的字段类型和其他映射信息。
    • 检索集群的健康状况:GET /_cluster/health 这个 API 可以用来检查集群的健康状态,包括红、黄、绿三种状态。
  2. POST:用于在 Elasticsearch 中创建或更新文档。也可以用来执行搜索请求。

    • 创建文档(随机生成 ID):POST /索引名/类型名/ 在请求体中包含文档内容。
    • 执行搜索:POST /索引名/_search 在请求体中包含查询 DSL。
  3. PUT:用于在 Elasticsearch 中创建索引或更新索引的映射等。

    • 创建索引并指定映射:PUT /索引名 在请求体中包含索引的设置和映射信息。
    • 更新文档:PUT /索引名/类型名/文档ID 在请求体中包含要更新的文档内容。
  4. DELETE:用于从 Elasticsearch 中删除文档或索引。

    • 删除文档:DELETE /索引名/类型名/文档ID
    • 删除索引:DELETE /索引名
  5. HEAD:用于检查资源是否存在,但不会返回资源内容。通常用于检查索引是否存在。

    • 检查索引是否存在:HEAD /索引名
  6. PATCH:用于部分更新文档。不过需要注意的是,Elasticsearch 本身并没有 PATCH 方法,部分更新通常是通过 _update 端点完成的。

    • 部分更新文档:POST /索引名/类型名/文档ID/_update 在请求体中包含部分更新信息

注意事项

  • 所有的请求都可以使用 GET、POST、PUT 和 DELETE 方法,但并不是所有方法都可以用于所有操作。例如,创建索引和删除索引通常使用 PUT 和 DELETE 方法。
  • Elasticsearch 使用 JSON 格式来接收参数和返回结果。
  • 由于 Elasticsearch 是分布式系统,某些操作(如删除索引)可能需要一些时间才能完成。
  • 使用 _doc 作为类型名称是因为从 Elasticsearch 7 开始,Elasticsearch 已经移除了显式的映射类型。
  • 在实际的生产环境中,通常会使用 HTTPS 而不是 HTTP 来保证数据传输的安全性。

以上只是 Elasticsearch REST API 的一部分,Elasticsearch 的功能非常丰富,还有很多高级操作和 API 未在这里列出,如多条件查询、脚本执行、监控等

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词