ES 插入数据

在本章中,我们将学习如何使用我们设置的elasticsearch-head插件向elasticsearch数据库添加索引、文档、数据和映射在上一章。我们将使用此插件执行查询。在发出请求之前,请务必使用 elasticsearch.bat 文件运行 elasticsearch 服务器。

我们将在本章中讨论以下主题:

  • 创建索引
  • 创建文档
  • 阅读文档
  • 更新文档
  • 删除文档

创建索引

要创建索引,我们需要指定索引名称和请求方法。因此,使用PUT请求方式,执行如下命令创建索引:

PUT student

这里PUT是请求方法,student是索引名。

响应:

如果索引创建成功,你会在响应正文中得到如下输出:

{
"acknowledged": true,
"shards_acknowledged": true,
}
"index": "student"

看下面的截图更好理解:

Elasticsearch Populate

创建文档或添加数据

创建索引后,我们现在可以将文档索引到elasticsearch 。为此,我们将使用 POST 方法并为文档指定一些 ID 以识别它们。设置请求方法=POST。

使用以下代码在索引中添加数据:

POST student/_doc/01/
{
"name": "Alen Paul",
"gender": "Male",
"phone": "9876543210",
"street": "Malen Park", "city": "California", "country": "United States", "zip": "94025"
}

这里POST是请求方法,_doc是文档类型,用来在索引中添加数据。

响应:

如果您在响应正文中获得以下输出,则成功添加请求中提供的数据。

{ 
"index": "student",
"type": "_doc",
"id": "01",
"version": 1,
"result" "created",
"_shards": {
"total":2,
"successful":1,
}
"failed": 0,
"_seq_no": 0,
"_primary_term": 1
}

看下面的截图更好地理解它:

Elasticsearch Populate

现在我们将添加索引"student"中的另一个文档。同样,我们可以在索引中添加任意数量的文档。

POST student/_doc/02/
{
"name": "Stan Lee",
"gender": "Male",
"phone": "9876543211",
"street": "New Rochelle", "city": "New York", "country": "United States", "zip": "10029"
}

响应:

如果您在响应正文中获得以下输出,则再成功添加一个文档。

{ 
"index": "student",
"type": "_doc",
"id": "02",
"version": 1,
"result" "created",
"_shards": {
"total":2,
"successful":1,
"failed": 0,
}
"_seq_no": 1,
"_primary_term": 2
}

看下面的截图更好地理解它:

Elasticsearch Populate

现在去概览选项卡以查看数据是否实际添加。点击刷新按钮刷新用户界面。您将能够看到添加的索引包含两个我们之前添加的文档。

Elasticsearch Populate

读取文档

在elasticsearch中,可以使用GET请求检索文档。创建一个新请求来检索文档。我们还需要指定索引名称和文档的 id。与 GET 请求一起提供所有三个信息,elasticsearch 将在响应正文中获取并显示结果。让我们看看它将如何实际完成:

GET student/_doc/02/

响应:

以下输出将显示在上述请求的响应正文中,其中索引名称为学生,文档 ID 为 02、

{ 
"index": "student",
"type": "_doc",
"id": "02",
"version": 1.
"_seq_no": 1,
"_primary_term": 2
"_source": {
"name ": "Alen Paul",
"gender": "Male",
"phone": "9876543210",
"street": "Malen Park", 
"city": "California", 
"country": "United States", 
"zip": " "94025"
}
}

响应,我们可以看到"_source"对象下的文档数据。

看下面的截图,直观地看到结果:

Elasticsearch Populate

更新文档

更新一个文档文档,我们需要API、请求方法、更新数据和请求字符串。 Elasticsearch 提供了 _update API 来更新文档。在本例中,我们将把城市从纽约替换为洛杉矶。因此,使用以下代码更新文档。

POST student/_doc/02/
_update
{
"doc": {
"city": "Los Angeles"
}
}

响应:

如果输出相同,则文档更新成功。

{ 
"index": "student",
"type": "_doc",
"id": "02",
"version": 2,
"result": "updated",
"shards": {
"total": 2
"successful": 1
"failed": 0,
}
"_seq_no": 2,
"_primary_term": 3
}

看下面的截图,直观地看到结果:

Elasticsearch Populate

删除文档

Elasticsearch 提供了DELETE 请求方法来删除文档。因此,只需设置 DELETE 请求方法并提供索引名称和文档 ID。

DELETE student/_doc/01/

响应:

如果您得到以下输出,则文档 01 已成功删除。

{ 
"index": "student",
"type": "_doc",
"id": "01",
"version": 2,
"result": "deleted",
"shards": {
"total": 2
"successful": 1
"failed": 0,
}
"_seq_no": 3,
"_primary_term": 3
}

在浏览器上看下面的截图:

Elasticsearch Populate

删除索引

要删除索引,只需指定索引名称和DELETE 请求方法,然后点击请求按钮。

DELETE student

下一章:ES 版本迁移

每当我们将系统或任何软件升级到更新版本时,它们总会有一些变化。因此,我们需要通过维护数据、应用程序配置、设置和许多其他东西来维持它们。为此,我们需要遵循几个步骤来使应用程序在新系统中稳定。这些步骤还有助于保持数据的完整性不被 ...