首页 > 其他分享 >24_上机动手实战演练基于groovy脚本进行partial update

24_上机动手实战演练基于groovy脚本进行partial update

时间:2024-10-01 19:35:08浏览次数:7  
标签:24 index partial update 11 test document type

es,其实是有个内置的脚本支持的,可以基于groovy脚本实现各种各样的复杂操作
基于groovy脚本,如何执行partial update
es scripting module,我们会在高手进阶篇去讲解,这里就只是初步讲解一下

PUT /test_index/test_type/11
{
"num": 0,
"tags": []
}

(1)内置脚本

POST /test_index/test_type/11/_update
{
"script" : "ctx._source.num+=1"
}

{
"_index": "test_index",
"_type": "test_type",
"_id": "11",
"_version": 2,
"found": true,
"_source": {
"num": 1,
"tags": []
}
}

(2)外部脚本

ctx._source.tags+=new_tag

POST /test_index/test_type/11/_update
{
"script": {
"lang": "groovy",
"file": "test-add-tags",
"params": {
"new_tag": "tag1"
}
}
}

(3)用脚本删除文档

ctx.op = ctx._source.num == count ? 'delete' : 'none'

POST /test_index/test_type/11/_update
{
"script": {
"lang": "groovy",
"file": "test-delete-document",
"params": {
"count": 1
}
}
}

(4)upsert操作

POST /test_index/test_type/11/_update
{
"doc": {
"num": 1
}
}

{
"error": {
"root_cause": [
{
"type": "document_missing_exception",
"reason": "[test_type][11]: document missing",
"index_uuid": "6m0G7yx7R1KECWWGnfH1sw",
"shard": "4",
"index": "test_index"
}
],
"type": "document_missing_exception",
"reason": "[test_type][11]: document missing",
"index_uuid": "6m0G7yx7R1KECWWGnfH1sw",
"shard": "4",
"index": "test_index"
},
"status": 404
}

如果指定的document不存在,就执行upsert中的初始化操作;如果指定的document存在,就执行doc或者script指定的partial update操作

POST /test_index/test_type/11/_update
{
"script" : "ctx._source.num+=1",
"upsert": {
"num": 0,
"tags": []
}
}

标签:24,index,partial,update,11,test,document,type
From: https://www.cnblogs.com/siben/p/18443140

相关文章

  • 23_图解partial update实现原理以及动手实战演练
    课程大纲1、什么是partialupdate?PUT/index/type/id,创建文档&替换文档,就是一样的语法一般对应到应用程序中,每次的执行流程基本是这样的:(1)应用程序先发起一个get请求,获取到document,展示到前台界面,供用户查看和修改(2)用户在前台界面修改数据,发送到后台(3)后台代码,会将用户修改的......
  • 2024.09 做题记录
    20240901上午模拟赛能想出来T2,但是怎么没想出来呢。T2:及时去想\(2^{k/2}\)的做法,猜到是DP套DP,但是没有进一步思考内层状态是\(O(2^{k/2}k)\)的。T3:没调完/fn/fnT4:赛时会了\(f_{i,j}\)表示\(B(i,j)\)是否可行,但是么有去想进一步的单调性优化,\(f_{i}\)可以表示最......
  • 网络流与线性规划24题详解(上)
    前言题单刷24题刷魔怔了,写个详解。难度不断递增,T1-T9为蓝题,T10-T23为紫题。(什么?你问我为什么没有T24?)好了,让我们开始吧!T1孤岛营救问题思路:这题数据小,所以用BFS\(key[x][y][k]\)记录\((x,y)\)的第k把钥匙\(wall[x1][y1][x2][y2]\)记录墙和门\(vis[x1][y1][k]\)记录是否走......
  • CSP2024-30
    A题意:将一个圆等分为\(K\)分,给出其中\(n\)个等分点的编号,\(x_i<x_{i+1}\)。有向边\(i\toj\)存在,当且仅当\(j\)是距离\(i\)最大的点(不唯一),且与图中其他边无交点(端点不算)。求图中最多有多少条边。\(3\leK\le10^9,3\len\le\min(K,10^5)\)。引理:不存在......
  • The 2024 ICPC Asia East Continent Online Contest (II)
    A.GamblingonChoosingRegionals最差情况就是,强队都和你去一起。因此赛站越小,排名也一定越小。然后只要动态实现出每个学校最强的若干只队伍就好了。#include<bits/stdc++.h>usingnamespacestd;usingi32=int32_t;usingi64=longlong;#defineinti64using......
  • 2024 北京市大学生程序设计竞赛
    Preface北京市赛(×),小WF(确信)感觉这场题总体都挺难的,除了前1h出了两个题后,后面基本上都是1h出一题然后最后1h发生了经典的我和徐神B,F双开双会,最后开始抢机时,最后经典的一个没写出来赛后发现F赛时代码改个初值就能过了,而徐神多花了半小时也是成功把B过了只能说还......
  • 文心一言 VS 讯飞星火 VS chatgpt (359)-- 算法导论24.3 1题
    一、在图24-2上运行Dijkstra算法,第一次使用结点作为源结点,第二次使用结点作为源结点。以类似于图24-6的风格,给出每次while循环后的值和值,以及集合中的所有结点。如果要写代码,请用go语言。文心一言:在图24-2上运行Dijkstra算法,我们可以模拟算法的执行过程,并给出每次while循......
  • leetcode24 两两交换链表中的节点(swap-nodes-in-pairs)
    题目描述:给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。示例1:输入:head=[1,2,3,4]输出:[2,1,4,3]示例2:输入:head=[]输出:[]示例3:输入:head=[1]输出:[1] 提示:链表中节点的数......
  • 论文总结1--基于深度强化学习的四足机器人步态分析--2024.10.01
    四足机器人的运动控制方法研究1.传统运动控制-基于模型的控制方法  目前,在四足机器人研究领域内应用最广泛的控制方法就是基于模型的控制方法,其中主要包括基于虚拟模型控制(VirtualModelControl,VMC)方法、基于零力矩点(ZeroMomentPoint,ZMP)的控制方法、弹簧负载倒立摆算法......
  • 【训练记录】2024年莆田市高中信息学奥赛国庆集训CSP-S提高组(第一天场外)
    训练情况rank#15\(100+0+40+0=140\)赛后反思T3忘记负数取模,丢了\(60\)分T1.跑步显然,找到第一个大于\(t\)的\(a,b,c\)倍数,所以我们直接\(t\diva,b,c\)向上取整,再乘回去,最后减去\(t\)即可,注意一下ceil好像会爆#include<bits/stdc++.h>#definei......