11 Elasticsearch 索引与文档操作之添加、更新与删除文档

在上篇中,我们学习了如何创建索引,这是使用 Elasticsearch 的第一步。在这一篇中,我们将深入探讨如何在索引中进行文档操作,包括文档的添加、更新与删除。我们将通过具体的案例来帮助理解这些基本操作。

添加文档

在 Elasticsearch 中,您可以通过 PUTPOST 请求来添加文档。假设我们有一个名为 books 的索引,其中存储了一些书籍的信息。每个书籍文档可以包含 title(标题)、author(作者) 和 published_year(出版年份)等字段。

添加单个文档

我们可以用如下命令添加一个文档:

1
2
3
4
5
6
PUT /books/_doc/1
{
"title": "Elasticsearch: The Definitive Guide",
"author": "Clinton Gormley",
"published_year": 2015
}

在这个例子中,1 是文档的 ID。如果您不提供文档 ID,Elasticsearch 将自动为您分配一个。

添加多个文档

如果您想一次性添加多个文档,可以使用 _bulk API。例如:

1
2
3
4
5
POST /_bulk
{ "index": { "_index": "books", "_id": "2" } }
{ "title": "Learning Elasticsearch", "author": "Abhishek Thakur", "published_year": 2018 }
{ "index": { "_index": "books", "_id": "3" } }
{ "title": "Elasticsearch in Action", "author": "Rafiq Omar", "published_year": 2015 }

此代码片段中,我们使用 POST /_bulk 发送多个文档,这样可以大幅提高数据写入的效率。

更新文档

有时候我们需要更新已有的文档。在 Elasticsearch 中,您可以使用 POST 请求来更新文档。

更新单个文档

假设我们想要更新文档 ID 为 1 的书籍信息,新增 genre(类型)字段,可以使用如下命令:

1
2
3
4
5
6
POST /books/_doc/1/_update
{
"doc": {
"genre": "Technology"
}
}

在这里,我们使用了 _update API,修改了文档的部分内容。

使用脚本更新

您还可以使用脚本来更新文档,以下是一个示例:

1
2
3
4
5
6
7
POST /books/_doc/1/_update
{
"script": {
"source": "ctx._source.published_year += 1",
"lang": "painless"
}
}

上述示例利用 Painless 脚本语言将出版年份加一。

删除文档

最后,我们来看看如何删除文档。如果您不再需要某个文档,可以通过 DELETE 请求来删除它。

删除单个文档

例如,删除文档 ID 为 1 的文档:

1
DELETE /books/_doc/1

执行此命令后,文档将从 books 索引中移除。

批量删除文档

同样,您可以使用 _bulk API 批量删除文档:

1
2
3
POST /_bulk
{ "delete": { "_index": "books", "_id": "2" } }
{ "delete": { "_index": "books", "_id": "3" } }

如上所示,一次性删除多个文档。

小结

通过本文的学习,我们已经掌握了如何在 Elasticsearch 中对文档进行添加、更新和删除操作。这些操作是使用 Elasticsearch 进行数据管理的基础,将为后续的文档检索打下坚实的基础。在下一篇中,我们将探索如何在 Elasticsearch 中检索文档,以便从我们刚刚管理的数据中提取信息。

11 Elasticsearch 索引与文档操作之添加、更新与删除文档

https://zglg.work/elasticsearch-zero/11/

作者

AI免费学习网(郭震)

发布于

2024-08-15

更新于

2024-08-16

许可协议

分享转发

复习上节

交流

更多教程加公众号

更多教程加公众号

加入星球获取PDF

加入星球获取PDF

打卡评论