ElasticSearch文档(document)在index上的增删改查

文章目录

一、document定义:

  1. 在 Elasticsearch 中,Document(文档)是存储在索引中的最小数据单元。它是一条具有结构化数据的记录,以 JSON(JavaScript Object Notation)格式表示。

  2. 每个文档都有一个唯一的标识符,称为 _id。如果你没有为文档提供自定义的 _id 值,Elasticsearch 将为其生成一个唯一的标识符。

  3. 文档可以包含任意数量的字段,每个字段都有一个字段名和一个对应的值。字段的值可以是文本、数字、日期、布尔值、数组或嵌套的对象。

  4. 在 Elasticsearch 中,文档是不可变的。这意味着一旦创建了文档,你不能直接修改它,而是通过替换整个文档来实现更新。

  5. 文档通常被组织在索引中,索引是一组具有共同特征的文档集合。你可以根据索引、类型和标识符来访问和操作文档。

  6. 在查询数据时,你可以使用 Elasticsearch 查询语言(Elasticsearch Query DSL)来搜索和过滤文档。

  7. 总结起来,Elasticsearch 中的文档是以 JSON 格式存储的记录,每个文档都有唯一的标识符,可以包含任意数量的字段和对应的值。文档是不可变的,可以通过索引、类型和标识符进行访问和操作。

二、单条增删改查

1、创建索引:

java 复制代码
PUT /myindex

2、添加文档:

java 复制代码
POST /myindex/_doc/1
{
  "title": "Example Document",
  "content": "This is an example document"
}

3、获取文档:

java 复制代码
GET /myindex/_doc/1

4、更新文档:

java 复制代码
POST /myindex/_doc/1/_update
{
  "doc": {
    "title": "Updated Document",
    "content": "This document has been updated"
  }
}

执行更新:POST /myindex/_doc/1/_update

再次查询:GET /myindex/_doc/1

5、删除文档:

java 复制代码
DELETE /myindex/_doc/1

请将 myindex 替换为你想要操作的索引名称。

在 Kibana Console 中逐步执行这些操作,你将能够查看到对索引中文档的增删改查操作的结果。

三、批量增删改查:

1、批量添加文档:

java 复制代码
POST /myindex/_bulk
{"index":{"_id":"1"}}
{"title":"Document 1","content":"This is document 1"}
{"index":{"_id":"2"}}
{"title":"Document 2","content":"This is document 2"}

2、批量更新文档:

java 复制代码
POST /myindex/_bulk
{"update":{"_id":"1"}}
{"doc":{"title":"Updated Document 1"}}
{"update":{"_id":"2"}}
{"doc":{"title":"Updated Document 2"}}

3、批量删除文档:

java 复制代码
POST /myindex/_bulk
{"delete":{"_id":"1"}}
{"delete":{"_id":"2"}}

4、批量查询文档:

java 复制代码
POST /myindex/_msearch
{}
{"query":{"match_all":{}},"size":10}

四、document小结:

  1. 在 Elasticsearch 中,Document(文档)是存储在索引中的最小数据单元。每个文档都有一个唯一的标识符 _id,可以自动生成或自定义。

  2. 文档使用 JSON(JavaScript Object Notation)格式表示,可以包含任意数量的字段。字段由字段名和对应的值组成,值可以是文本、数字、日期、布尔值、数组或嵌套的对象。

  3. 文档是不可变的,一旦创建,不能直接修改。要更新文档,需要替换整个文档。

  4. 文档通常被组织在索引中,索引是一组具有共同特征的文档集合。可以根据索引、类型和标识符来访问和操作文档。

  5. 文档的创建和更新是异步的,意味着写入操作不会立即对搜索结果产生影响。Elasticsearch 会将写入操作存储在内存缓冲区中,然后按照一定的策略将数据刷新到磁盘。

  6. 在查询数据时,可以使用 Elasticsearch 查询语言(Elasticsearch Query DSL)来搜索和过滤文档。通过构建查询语句,可以对文档进行全文搜索、精确匹配、范围过滤等操作。

  7. 文档的性能受到多个因素的影响,包括索引设置、分片和副本配置、硬件性能等。为了提高性能,可以使用批量操作来同时创建、更新或删除多个文档。

  8. 总结起来,Elasticsearch 中的文档是以 JSON 格式存储的记录,每个文档都有唯一的标识符。文档可以包含任意数量的字段和对应的值,是不可变的。可以通过索引、类型和标识符来访问和操作文档,使用查询语言进行搜索和过滤。文档的性能受到多个因素的影响,可以通过批量操作提高性能。

相关推荐
2601_949194265 小时前
springboot之集成Elasticsearch
spring boot·后端·elasticsearch
Caspian Wren6 小时前
通过Logstash将MySQL数据同步到ES
数据库·mysql·elasticsearch·logstash
Elastic 中国社区官方博客7 小时前
使用 Remote Write 将 Prometheus 指标发送到 Elasticsearch
大数据·运维·elasticsearch·搜索引擎·全文检索·prometheus
Elasticsearch8 小时前
自动化可靠性:自愈型企业的架构
elasticsearch
SiYuanFeng9 小时前
新手学Git:以一个小游戏项目为例,完成初始化、提交、查看历史与恢复版本
大数据·git·elasticsearch
骑蜗牛散步11 小时前
Docker下安装ElasticSearch
大数据·elasticsearch·jenkins
Elasticsearch12 小时前
Elastic Security、Observability 和 Search 现在在你的 AI 工具中提供交互式 UI
elasticsearch
zhougl99612 小时前
Git 命令速查手册
大数据·git·elasticsearch
Caspian Wren12 小时前
通过Canal、Canal adapter将MySQL数据同步到ES
mysql·elasticsearch·adb
JackSparrow41412 小时前
使用Elasticsearch代替数据库like以加快查询的各种技术方案+实现细节
大数据·clickhouse·elk·elasticsearch·搜索引擎·postgresql·全文检索