Elasticsearch学习--索引的批量操作mget、bulk

这篇具有很好参考价值的文章主要介绍了Elasticsearch学习--索引的批量操作mget、bulk。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、批量查询mget

1. 基本用法

查询id是1、2的数据

# 批量查询
GET _mget
{
  "docs":[
    {
      "_index":"indexname",
      "_id":1
    },
    {
      "_index":"indexname",
      "_id":2
    } 
  ]
}

Elasticsearch学习--索引的批量操作mget、bulk

2. 提取index

# 也可以把索引提到上面
GET indexname/_mget
{
  "docs":[
    {
      "_id":1
    },
    {
      "_id":2
    } 
  ]
}

 3. ids的用法

# 也可以通过ids直接查询id
GET indexname/_mget
{
  "ids":[1,2]
}

4. 指定source

# 查询时,指定source
GET indexname/_mget
{
  "docs":[
    {
      "_id":1,
      "_source":[
        "name"
        ]
      
    },
    {
      "_id":2,
      "_source":{
        "include":[],
        "exclude":[]
      }
    } 
  ]
}

二、文档的操作类型

create:不存在则创建,存在则报错
delete:删除文档
update:全量替换或部分更新
index:索引(动词)

1. 自动生成id

# 自动生成id
POST indexname/_doc
{
  "a":"3",
  "b":5
}

 Elasticsearch学习--索引的批量操作mget、bulk

2. 删除操作是懒删除

并没有真正的删除,只是标记为删除 

3. index(可以是创建,也可以是全量替换)

如果数据不存在,创建:PUT {indexname}/_create/{id}

如果数据存在,全量替换:PUT {indexname}/_doc/{id}

PUT indexname/_doc/1?op_type=index
{
  "a":1,
  "b":2
}

4. filter_path=items.*.error

请求后面加这个参数,只输出错误信息

PUT indexname/_doc/10?filter_path=items.*.error
{
  "a":1,
  "b":2
}

三、批量增删改

1. 新增 create

POST  _bulk
{"create":{"_index":"product","_id":10}}
{"name":"xxxx"}

Elasticsearch学习--索引的批量操作mget、bulk  

2. 删除

POST  _bulk
{"delete":{"_index":"product","_id":10}}

Elasticsearch学习--索引的批量操作mget、bulk

3. 修改

部分修改,数据不存在会报错

POST  _bulk
{"update":{"_index":"product","_id":10}}
{"doc":{"name":"xxxx22"}}

 4. 批量操作

也可以把增删改放在一起,批量操作

POST  _bulk
{"create":{"_index":"product","_id":11}}
{"name":"xxxx"}
{"create":{"_index":"product","_id":12}}
{"name":"xxxx12"}
{"update":{"_index":"product","_id":12}}
{"doc":{"name":"xxxx13"}}
{"delete":{"_index":"product","_id":12}}
{"delete":{"_index":"product","_id":11}}
{"delete":{"_index":"product","_id":10}}

Elasticsearch学习--索引的批量操作mget、bulk

如果操作数据过多,结果也会有很多,只想看错误结果:

POST  _bulk?filter_path=items.*.error
{"create":{"_index":"product","_id":11}}
{"name":"xxxx"}
{"create":{"_index":"product","_id":12}}
{"name":"xxxx12"}
{"update":{"_index":"product","_id":12}}
{"doc":{"name":"xxxx13"}}
{"update":{"_index":"product","_id":13}}
{"doc":{"name":"xxxx13"}}
{"delete":{"_index":"product","_id":12}}
{"delete":{"_index":"product","_id":11}}
{"delete":{"_index":"product","_id":10}}

id为13的数据操作失败 

 Elasticsearch学习--索引的批量操作mget、bulk

 5. bulk操作的优缺点

优点:不消耗额外的内存。单条操作时,需要把{}中的数据在内存中序列化成json对象,消耗堆内存空间

缺点:人进行阅读时,可读性较差文章来源地址https://www.toymoban.com/news/detail-495626.html

到了这里,关于Elasticsearch学习--索引的批量操作mget、bulk的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 微服务学习|初识elasticsearch、操作索引库、文档操作、RestClient操作索引库、RestClient操作文档

    elasticsearch是一款非常强大的开源搜索引擎,可以帮助我们从海量数据中快速找到需要的内容。 elasticsearch结合kibana、Logstash、Beats,也就是elastic stack (ELK)。被广泛应用在日志数据分析、实时监控等领域 elasticsearch是elastic stack的核心,负责存储、搜索、分析数据 Lucene是一个jav

    2024年01月18日
    浏览(45)
  • Elasticsearch学习-索引操作及Mapping映射

    在7.X版本前类似于关系型数据库中的数据库概念,8.X版本后删除了type概念,索引类似于关系型数据库中的表 相当于关系型数据库中的一条数据,最小单元 每一个节点就是一个ES实例(一个java进程),一个节点 != 一台服务器 多个节点组成分布式系统,ES原生分布式,已启动一

    2023年04月22日
    浏览(41)
  • ElasticSearch学习2--索引和文档的基础操作

    1、创建索引         对ES的操作其实就是发送一个restful请求,kibana中在DevTools中进行ES操作         创建索引时需要注意ES的版本,不同版本的ES创建索引的语句略有差别,会导致失败 如下创建一个名为people的索引,settings,一些设置,mappings字段映射 我的版本是7.0之前

    2024年02月10日
    浏览(43)
  • ElasticSearch-学习笔记04【Java客户端操作索引库】

    Java后端-学习路线-笔记汇总表【黑马程序员】 ElasticSearch-学习笔记01【ElasticSearch基本介绍】 【day01】 ElasticSearch-学习笔记02【ElasticSearch索引库维护】 ElasticSearch-学习笔记03【ElasticSearch集群】 ElasticSearch-学习笔记04【Java客户端操作索引库】 【day02】 ElasticSearch-学习笔记05【Spri

    2023年04月09日
    浏览(43)
  • elasticsearch批量索引数据示例

       示例数据文件document.json(index表示在索引中增加或替换现有文档,create表示如果文档不存在则添加文档,delete表示删除文档): { \\\"index\\\": { \\\"_index\\\": \\\"addr\\\", \\\"_type\\\": \\\"contact\\\", \\\"_id\\\": 1 }} { \\\"name\\\": \\\"Fyodor Dostoevsky\\\", \\\"country\\\": \\\"RU\\\" } { \\\"create\\\": { \\\"_index\\\": \\\"addr\\\", \\\"_type\\\": \\\"contact\\\", \\\"_id\\\": 2 }} { \\\"name\\\": \\\"Erich M

    2024年02月08日
    浏览(45)
  • Spring Boot Elasticsearch7.6.2实现创建索引、删除索引、判断索引是否存在、获取/添加/删除/更新索引别名、单条/批量插入、单条/批量更新、删除数据、递归统计ES聚合的数据

    注意:我的版本是elasticsearch7.6.2、spring-boot-starter-data-elasticsearch-2.5.6 引入依赖 有时候你可能需要查询大批量的数据,建议加上下面配置文件

    2024年02月13日
    浏览(70)
  • Elasticsearch Java API 的使用-更新索引(update & upset)与 Bulk的批量更新

    Java更新索引(update upset) update 更新使用UpdateRequest(update类型更新,只能更新) upset 要用IndexRequest设定添加文档,UpdateRequest设定更新文档,设定upset执行有则修改无则更新(upset类型更新,文档不存在时创建) 基于Bulk的批量更新(update upset) 动态的更新一个 documents 中的任

    2024年02月11日
    浏览(50)
  • elasticsearch索引操作,索引创建、索引更新、索引删除

    创建索引 更新索引,添加字段 注意更新索引时与创建索引大致一样,只是更新索引时候的url不同,需要在后面加一个 _mapping 路径,同时请求的json里面不需要 mappings 路径,只需要 properties 即可 更新索引,修改配置 同理在更新setting的时候和更新maping的时候一样 获取索引结构

    2024年02月11日
    浏览(43)
  • java操作ElasticSearch之批量操作

    出现: 版本冲突、文档类型不对、JAR包与使用的API不一致或其他问题。都可参考以下连接。 ElasticSearch超级实用API描述 以上代码需要变动一下,将一些参数替换掉。

    2024年02月16日
    浏览(45)
  • Elasticsearch批量操作

    Elasticsearch批量操作 批量写入节省堆内存,跟PUT写入原理不一样 要注意,必须写成如下格式 有点奇怪 op_type 有增删改查四种 DELETE,CREATE,UPDATE,INDEX CREATE: 存在报错 不存在插入 UPDATE:有则全量覆盖,无则插入

    2024年02月12日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包