Elasticsearch局部更新(数组追加)

ElasticSearch最新版快速入门详解 本文把最新版的ElasticSearch和kibana的知识点用通俗易懂的语言来展现,并会在核心概念上和MySql对比,结合示例进行图文并茂的详解,同时还给大家提供百分百成功的极速安装配置方法哦! 阅读详情

Elasticsearch局部更新(数组追加)

现在需要实现这样一个功能:(本人使用ES版本为5.4.0)
比如:我这需要操作的某个字段tags:[“tag1”,”tag2”,”tag3’] , 现在发现了一个新标签”tag4”,需要加入到tags中。

第1步:创建一个新文档 - 确定(index = test_index; type = test_type; id = 1)

POST test_index/test_type/1
{
  "tags":["tag1", "tag2", "tag3"]  
}

第2步:使用脚本将附加值附加到tags数组

POST test_index/test_type/1/_update
{
   "script" : "ctx._source.tags+=new_tag",
   "params" : {
      "new_tag" : "tag4"
   }
}

然后出现这个错误

{
  "error": {
    "root_cause": [
      {
        "type": "remote_transport_exception",
        "reason": "[**_test_01][**.**.**.**:9300][indices:data/write/update[s]]"
      }
    ],
    "type": "illegal_argument_exception",
    "reason": "failed to execute script",
    "caused_by": {
      "type": "script_exception",
      "reason": "compile error",
      "script_stack": [
        "ctx._source.tags+=new_tag",
        "                  ^---- HERE"
      ],
      "script": "ctx._source.tags+=new_tag",
      "lang": "painless",
      "caused_by": {
        "type": "illegal_argument_exception",
        "reason": "Variable [new_tag] is not defined."
      }
    }
  },
  "status": 400
}
  • 经过我上网找了一些资料后,应该是这样写:
POST test_index/test_type/1/_update
{
   "script" : {
       "inline": "ctx._source.tags.add(params.new_tag)",
       "params" : {
          "new_tag" : "tag4"
       }
   }
}

查看一下:

{
  "_index": "test_index",
  "_type": "test_type",
  "_id": "1",
  "_version": 32,
  "found": true,
  "_source": {
    "tags": [
      "tag1",
      "tag2",
      "tag3",
      "tag4"
    ]
  }
}

成功添加

uniCloud云存储进阶:七牛云扩展存储从开通、绑定域名到批量上传的完整实战 本文详细介绍了uniCloud云存储进阶实践,重点讲解如何通过七牛云扩展存储实现从开通、绑定域名到批量上传的完整流程。内容涵盖成本优势分析、域名备案方案、SSL证书配置、多文件并发上传控制等实战技巧,并提供可直接复用的代码示例,帮助开发者高效构建内容社区类应用。 阅读详情

相关推荐

CCF201803-2 碰撞的小球 python

一些话:已经不知道是第几次做这道题了(大概第三次吧),真的常做常新,每次都有新的细节想法。虽然方法简单粗暴,但好在方便理解,对于我这种菜鸟选手而言。 但在做的过程中,最开始还忽略了输入的小球初始位置有可能是无序的,输出的时候要保持相对位置。CCF真的考验细节,希望上考场时能够认真仔细一点。就酱… #碰撞的小球 #当小球坐标为0或L时,会朝相反方向移动 #当两个小球坐标相等时,会分别转向相反的方向 #计算t秒之后小球的位置 n,L,t = map(int,input().split()) location .

tanya_dre的博客 351

ES6 - 数组新增的一些常用方法

ES6新增了多个实用的数组方法: Array.from()可将类数组对象或可迭代对象转为真正的数组,支持类似map的处理功能; Array.of()解决了Array()构造函数参数行为不一致的问题,能稳定地将参数转为数组; find()和findIndex()分别查找第一个符合条件的成员及其索引,新增的findLast()和findLastIndex()则从数组末尾开始查找。这些方法都支持回调函数处理,并可通过第二个参数绑定this。这些新增方法大大增强了JavaScript数组的操作能力。

尽日寻春不见春,芒鞋踏遍陇头云。归来笑拈梅花嗅,春在枝头已十分。 2234

Ultrascale/Ultrascale+ FPGA GTH IP及结构详解(一)

FPGA GTH Transceiver

houzi6320的博客 1万+

Elasticsearch 5.6.3 通过script添加、删除数组元素

环境:Elasticsearch 5.6.3 需求描述:对ES文档中一个数组字段tags添加或者删除元素“3”,esIP代表Elasticsearch的IP,docid代表文档ID 方法: 1、添加数组元素 curl -XPOST 'http://esIP:9200/in_news/document/docid/_update' -d ' {"script":{"in

lengchanguo的专栏 1万+

Cursor AI编程工具保姆级安装指南:从下载到中文界面设置(含免费额度说明)

本文提供Cursor AI编程工具的保姆级安装与设置教程。详细指导从官网下载、安装到中文界面切换的每一步,并重点说明其每月500次高级模型调用的免费额度策略。通过个性化设置与核心插件推荐,帮助开发者快速上手,提升AI辅助编程效率。

weixin_29191761的博客 673

Nvivo12新手避坑指南:从安装到编码的完整流程(附实战案例)

本文为Nvivo12新手提供了从软件安装、初始设置到数据导入和编码分析的完整避坑指南。通过一个“校园欺凌现象的学生访谈研究”实战案例,详细拆解了处理中文文本、创建项目结构、执行手动编码及高级查询等关键步骤,帮助研究者避开常见错误,快速上手并高效完成质性数据分析。

resnet7explorer的博客 319

elasticsearch 更新修改数据(添加和删除字段等)

本文主要内容: 1、脚本更新文档 (1).更新常规字段值 (2).更新数组类型字段值 (3).通过脚本进行一定判断,再执行更新操作 2、传递部分文档形式更新文档,可以理解成追加文档 (1).检查noop更新 3、upsert更新,即存在更新,不存在另行其他操作 4、更新操作支持以下查询字符串参数 5、Java JestClient 更新示例 前言: 在 Elasticsearch 中 文档是不可改变 的,不能修改它们。 相反,如果想要更新现有的文档,需要重建索引或者进行替.

祁东握力的博客 2万+

本地AI语音生成与配音工作台Pandrator:从TTS到RVC的完整实践指南

语音合成(TTS)技术通过深度学习模型将文本转换为自然语音,其核心原理涉及声学建模与波形生成。这项技术不仅提升了人机交互体验,更在内容创作领域展现出巨大价值,广泛应用于有声书制作、视频配音、虚拟助手等场景。本文聚焦于一个集成了XTTS-v2、RVC等先进模型的本地化AI语音工作台——Pandrator,它通过模块化架构将语音合成、声音克隆、音频转录与翻译等流程无缝整合,为用户提供了一个图形化、可定制的完整解决方案。文章深入解析了其基于TTS与RVC(Retrieval-based Voice Convers

weixin_42676876的博客 340

Elasticsearch 更新 nested 嵌套对象 数组中某个对象的某些字段的值

在业务中遇到需要更新ES中某个表格里面一个字段中的值,这个字段是一个nested嵌套对象数组(二级表),需要更新里面某个对象的某1-2个字端的值,网上搜索了一下,最后找到了一个解决办法,运用的是es中自带的脚本。   { "script": { "lang": "painless", "source": "ctx._source.*[i](嵌套对象字段名[对象下标]).*(需要更新字段...

maylead的博客 1万+

51单片机独立按键控制LED(二)

对于机械开关,当机械触点断开、闭合时,由于机械触点的弹性作用,一个开关在闭合时不会马上稳定地接通,在断开时也不会一下子断开,所以在开关闭合及断开的瞬间会伴随一连串的抖动。独立按键控制LED显示二进制。独立按键控制LED灯亮灭。独立按键控制LED状态。独立按键控制LED移位。

m0_50562428的博客 5383

1.2 amdgpu_bo的设计分析 — gem层和ttm层

本文分析了AMD KFD的BO设计架构,重点介绍了DRM子系统中缓冲对象的多层继承关系。文章首先展示了核心继承层次图,包括DRM通用层(drm_gem_object)、TTM内存管理层(ttm_buffer_object)、AMD驱动层(amdgpu_bo)和KFD计算层(kgd_mem)。随后详细解析了drm_gem_object结构体的关键功能,包括用户空间接口管理、内存映射支持、引用计数机制以及DMA-BUF导入/导出功能。

图形/计算GPU的驱动与虚拟化技术分享园地 2549

Elasticsearch 追加更新文档(即不覆盖原来的数据)

最近一直在研究怎么对es 数据库进行追加更新,因为无论是整个文档更新还是局部的更新,都是先找到旧的,然后标记删除,然后再添加新的文档,显然这不能满足需要对文档追加更新的需求,即不覆盖之前的记录进行更新。以下分情况进行研究: 对列表的追加更新 不管是对列表还是对字符串的追加更新,都需要利用脚本来进行,script比较灵活可以自己定义你想实现的逻辑,如下,首先判断文档中有没有vuln_label这个字段(filed),没有的话添加一个这个字段,数据结构定为列表,如果有这个字段则追加更新params.tag

妙齐光的博客 2623

AI Agent的数据安全与隐私保护措施

AI Agent(人工智能代理)作为一种能够感知环境、做出决策并采取行动的智能实体,在现代社会的各个领域中得到了广泛的应用,如智能客服、自动驾驶、金融风险评估等。随着其应用的不断拓展,AI Agent处理和存储的数据量急剧增加,这些数据包含了大量的个人敏感信息和商业机密。因此,确保AI Agent的数据安全与隐私保护变得至关重要。本文的目的在于全面探讨AI Agent的数据安全与隐私保护措施,涵盖从数据的采集、存储、处理到传输的整个生命周期。

AGI×大数据,开启智能时代的认知跃迁;解码AGI,赋能数据驱动的智能革命。 2869

ElasticSearch根据匹配某个条件,局部更新文档

首先声明版本为ES 6.0。index中有很多文档,要更新这些文档中符合某个条件的所有documents,可以使用ES的_update_by_query的及脚本方式完成:POST请求:http://localhost:9200/indexName/typeName/_update_by_query { "script": {"source":"ctx._source['user_name']='L

wessiyear的博客 1万+

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Elasticsearch之文档局部更新。

博文中的内容来源《Elasticsearch权威指南(中文版)》这一本书,感激不尽。

孤芳不自赏 4319

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

ElasticSearch中局部更新操作(工作笔记)

写在前面 相当于一个备忘录,感觉现在记忆不好了,自己做的过段时间可能就记不清楚了,所以写个笔记备忘一下 原文章链接 ES方面配置 需要在Elasticsearch的配置文件elasticsearch.yml中添加如下配置: script.engine.groovy.inline.update: on 功能实现 groovy脚本 car_target_id和item都为数组,在脚本中数据的...

littlehow的专栏 1406

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

elasticsearch 局部更新

文档局部更新 在《更新文档》一章,我们说了一种通过检索,修改,然后重建整文档的索引方法来更新文档。这是对的。然而,使用updateAPI,我们可以使用一个请求来实现局部更新,例如增加数量的操作。 我们也说过文档是不可变的——它们不能被更改,只能被替换。updateAPI必须遵循相同的规则。表面看来,我们似乎是局部更新了文档的位置,内部却是像我们之前说的一样简单的使用updateAPI处理...

weixin_30399797的博客 533

通过 Python 更新 Elasticsearch 数据方法大全

大家好,我是村长 今天总结一下通过Python 更新 Elasticsearch 数据的几个方法 Elasticsearch 是一个实时的分布式搜索分析引擎,它能让你以前所未有的速度和规模,去探索你的数据。 它被用作全文检索、结构化搜索、分析以及这三个功能的组合 全局更新 在 Elasticsearch 中,通过指定文档的 _id, 使用 Elasticsearch 自带的 index api 可以实现插入一条 document , 如果该 _id 已存在,将直接更新该 document 因此,通过i

Python编程与实战的博客 944

17.Elasticsearch更新文档3---局部更新2---脚本更新2

本文讲解一下用脚本如何去修改一个数组的值。 我们给此文档新增一个可以有多个值的属性,然后进行脚本操作 4.新增字段 POST /policy_document/policy_document/222/_update { "doc": { "tags":["重要"] } } 或者用脚本新增 POST policy_

IT云清 2310

es局部更新与版本控制

更新文档中的一部分 在《更新》一章中,我们讲到了要是想更新一个文档,那么就需要去取回数据,更改数据然后将整个文档进行重新索引。当然,你还可以通过使用更新API来做部分更新,比如增加一个计数器。 正如我们提到的,文档不能被修改,它们只能被替换掉。更新API也必须遵循这一法则。从表面看来,貌似是文档被替换了。对内而言,它必须按照找回-修改-索引的流程来进行操作与管理。不同之处在于这个流程是在一...

oaibf的专栏 1270

ES5到ES6 js的语法更新

js是一门弱语言类型,为了实现更有逻辑的代码,需要不断更新语法规范,es就是用来规范js语法的标准。09年发布了es5,到15年发布es6,到现在es6泛指es5.1以后的版本es2016,es2017。

weixin_45939821的博客 1455

在 Elasticsearch 8.17 上实现 dense 字段原地更新

业务里有一类字段很「烦人」:PV、下载量、在线状态、实时计数——,但几乎不需要全文检索。_update_update_source_sourcelong——写入索引后,通过 REST API 按_id或 Query 批量改值;查询、排序、聚合读 mmap 里的最新值,_source。这就是es_update插件的由来。但在真正上线、。

goodluck_mh的博客 536

Elasticsearch数组Array类型增加、删除

# 创建一条数据 POST test_index/test_type/1 { "tags":["tag1", "tag2", "tag3"] } # 查看数据 GET test_index/test_type/1 # 给 _id=1 的tags增加一个 tag5 POST test_index/test_type/1/_update { "script" : { "source": "ctx._source.tags.add(params.tag)", "pa

彭世瑜的博客 5380

ElasticSearch 条件更新 删除

ElasticSearch根据匹配某个条件,局部更新文档 首先声明版本为ES 6.0。 index中有很多文档,要更新这些文档中符合某个条件的所有documents,可以使用ES的_update_by_query的及脚本方式完成:POST请求:http://localhost:9200/indexName/typeName/_update_by_query { "script"...

jacke121的专栏 8503

关于ElasticSearch使用Groovy做局部更新出现问题:Variable [new_tag] is not defined.

遇见问题特此记录希望能帮助到看到的人 在跟着ElasticSearch权威指南学习过程中依旧发现有些语句是不再支持的 在局部更新一节,依照Demo 当前的数据索引结果是这样的: { _index: "website", _type: "blog", _id: "123", _version: 5, found: true, _source: {

Baristas的博客 2490
上一篇: 文件后缀
下一篇: 面试及分享
烂笔头NI
博客等级 码龄9年 7粉丝 27原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值