所有文章 > API使用场景 > 通过REST API与Elasticsearch交互
通过REST API与Elasticsearch交互

通过REST API与Elasticsearch交互

Elasticsearch 是用于管理和分析数据的强大工具,它提供了一个 RESTful API,允许开发人员使用简单的 HTTP 请求与之交互。

这个API是根据具象状态传输(REST)原则构建的,因此它对于各种专业水平的开发人员来说都易于访问和理解。在本文中,我们将详细介绍如何通过 REST API 与 Elasticsearch 交互。

了解 Elasticsearch REST API

  • Elasticsearch REST API 基于表述性状态传输 (REST) 的原则,允许我们使用 HTTP 方法(如 GET、 GET、 )在 Elasticsearch 集群上执行 CRUD(创建、读取、更新、删除)操作。POST、PUT 和 DELETE
  • Elasticsearch通过REST API提供了一个简单直观的交互界面,使得所有技能水平的开发人员都能够轻松访问。

Elasticsearch REST API 的基本概念

在我们执行通过 Elasticsearch 的 REST API 与 Elasticsearch 交互的示例之前,让我们先介绍一些基本概念:

  • 索引:在 Elasticsearch 中,索引就像一个大容器或文件夹,我们在其中存储类似类型的信息。正如我们可能会拥有一个存放照片的文件夹和另一个存放文档的文件夹等一样,在Elasticsearch中,我们也拥有针对不同类型数据的索引。
  • 文档:在 Elasticsearch 中,文档就像一条信息。假设我们的计算机上保存着一个文件,里面详细记录了某些特定内容,比如客户的姓名、地址以及电话号码等信息。在 Elasticsearch 中,此文件称为文档。这是一种存储和组织信息的方法,以便我们以后可以轻松查找和检索它。
  • 查询:在 Elasticsearch 中,查询就像提出问题来查找特定信息。我们可以在 Elasticsearch 中使用查询来查找符合特定条件的文档。例如,我们可以要求 Elasticsearch 查找价格低于 50 美元的所有产品或居住在某个城市的所有客户
  • Mapping:作为 Elasticsearch 的说明手册的 Mapping。它告诉 Elasticsearch 如何理解组织每个文档中的数据。它明确了每个字段所包含的数据类型(例如文本、数字、日期等),并规定了这些数据应该如何被存储和搜索。

运作方式

当我们想要利用Elasticsearch完成某些任务,比如搜索信息或者添加新数据时,我们会通过发送请求来实现,这些请求包含了适当的HTTP方法(如GET、POST、PUT、DELETE)以及指明具体操作的URL。

与 Elasticsearch 交互的示例

以良好的方式理解与 Elasticsearch 交互。我们将考虑以下示例文档来执行操作和查询,以便更好地理解。

[
{
"_id": 1,
"name": "Elasticsearch Beginner's Guide",
"price": 29.99,
"category": "Books"
},
{
"_id": 2,
"name": "Learning Elasticsearch",
"price": 39.99,
"category": "Books"
},
{
"_id": 3,
"name": "Mastering Elasticsearch",
"price": 49.99,
"category": "Books"
},
{
"_id": 4,
"name": "Elasticsearch in Action",
"price": 34.99,
"category": "Books"
},
{
"_id": 5,
"name": "Advanced Elasticsearch Techniques",
"price": 44.99,
"category": "Books"
},
{
"_id": 6,
"name": "The Definitive Guide to Elasticsearch",
"price": 59.99,
"category": "Books"
}
]

1. 为文档编制索引

假设我们必须向库中添加新书籍。

POST /products/_doc/1
{
"name": "Elasticsearch Beginner's Guide",
"price": 29.99,
"category": "Books"
}

响应

{
"result": "created",
"_index": "products",
"_type": "_doc",
"_id": "1",
"_version": 1,
"_shards": {
"total": 2,
"successful": 1,
"failed": 0
},
"_seq_no": 0,
"_primary_term": 1
}

使用 POST 方法将新工作簿的详细信息发送到 Elasticsearch,并指定文档的索引、类型和唯一 ID。

2. 搜索文档

假设我们必须查找书库中标题为 “Elasticsearch” 的所有书籍。

GET /products/_search
{
"query": {
"match": {
"name": "Elasticsearch"
}
}
}

响应

{
"took": 5,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"skipped": 0,
"failed": 0
},
"hits": {
"total": {
"value": 1,
"relation": "eq"
},
"max_score": 0.15342641,
"hits": [
{
"_index": "products",
"_type": "_doc",
"_id": "1",
"_score": 0.15342641,
"_source": {
"name": "Elasticsearch Beginner's Guide",
"price": 29.99,
"category": "Books"
}
}
]
}
}

使用 GET 方法在索引中搜索 “name” 字段与术语 “Elasticsearch” 匹配的文档。

3. 更新文档

假设我们必须更新图书馆中一本书的价格。

POST /products/_doc/1/_update
{
"doc": {
"price": 39.99
}
}

响应

{
"_index": "products",
"_type": "_doc",
"_id": "1",
"_version": 2,
"_shards": {
"total": 2,
"successful": 1,
"failed": 0
},
"_seq_no": 1,
"_primary_term": 1
}

通过指定书籍的ID和新价格,我们使用POST方法来更新书籍的价格。

4. 删除文档

假设我们必须从图书馆中删除一本书。

DELETE /products/_doc/1

响应:

{
"_index": "products",
"_type": "_doc",
"_id": "1",
"_version": 3,
"result": "deleted",
"_shards": {
"total": 2,
"successful": 1,
"failed": 0
},
"_seq_no": 2,
"_primary_term": 1
}

使用 DELETE 方法通过指定文档的 ID 来删除文档。

结论

总体而言,Elasticsearch REST API 提供了一种与 Elasticsearch 交互的简单有效的方法,使开发人员能够轻松管理数据。开发人员若掌握了索引、文档、查询和映射这些基本概念,就能充分发掘Elasticsearch在其项目中所蕴含的全部潜力。本指南通过定义索引、搜索、更新和删除文档等常见操作的示例,为使用 Elasticsearch 的 REST API 奠定了坚实的基础。

原文链接:https://www.geeksforgeeks.org/interacting-with-elasticsearch-via-rest-api/?ref=oin_asr4

#你可能也喜欢这些API文章!