iis服务器助手广告
返回顶部
首页 > 资讯 > 后端开发 > GO >使用elasticsearch原子操作更新
  • 375
分享到

使用elasticsearch原子操作更新

2024-04-04 23:04:23 375人浏览 独家记忆
摘要

本篇文章向大家介绍《使用elasticsearch原子操作更新》,主要包括,具有一定的参考价值,需要的朋友可以参考一下。问题内容func (d *Dynamic) Like(ctx *gin.Con

本篇文章向大家介绍《使用elasticsearch原子操作更新》,主要包括,具有一定的参考价值,需要的朋友可以参考一下。

问题内容

func (d *Dynamic) Like(ctx *gin.Context) {
    var (
        req message.Like
        err error
        buf bytes.Buffer
    )
    if err = ctx.ShouldBind(&req); err != nil {
        d.ResponseJSON(ctx, 400, err.Error(), nil)
        return
    }
    doc := map[string]interface{}{
        "doc": map[string]interface{}{
            "like_number": 1,
        },
    }
    if err := json.NewEncoder(&buf).Encode(doc); err != nil {
        fmt.Printf("%v", err.Error())
    }
    resp, err := config.Global.ES.Update("live_dynamic_list", req.DynamicId, &buf, config.Global.ES.Update.WithDocumentType("doc"))
    fmt.Printf("%v", resp)
    if err != nil {
        d.ResponseJson(ctx, 400, err.Error(), nil)
        return
    }
    d.ResponseJson(ctx, 200, "success", nil)
}
  • 我希望在自身基础上实现 like_number + 1
  • 例如,like number当前值为69,执行代码后应该+1,即70。
  • 我使用的包是 GitHub.com/elastic/Go-elasticsearch/v7


解决方案


通常会执行原子更新(例如就地增量)via scripts:

POST live_dynamic_list/_update/doc_id
{
  "script" : {
    "source": "ctx._source.like_number += params.increment",
    "lang": "painless",
    "params" : {
      "increment" : 1
    }
  }
}

Here's how 您可以在 go 中使用此类更新脚本。

理论要掌握,实操不能落!以上关于《使用elasticsearch原子操作更新》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注编程网公众号吧!

您可能感兴趣的文档:

--结束END--

本文标题: 使用elasticsearch原子操作更新

本文链接: https://www.lsjlt.com/news/596069.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 使用elasticsearch原子操作更新
    本篇文章向大家介绍《使用elasticsearch原子操作更新》,主要包括,具有一定的参考价值,需要的朋友可以参考一下。问题内容func (d *Dynamic) Like(ctx *gin.Con...
    99+
    2024-04-04
  • 使用postman怎么操作ElasticSearch
    本篇内容主要讲解“使用postman怎么操作ElasticSearch”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“使用postman怎么操作ElasticSearch”吧!Postman背景介...
    99+
    2023-06-07
  • 使用PHP操作Elasticsearch数据库
    随着大数据时代的到来,很多企业开始选择使用Elasticsearch数据库来存放和索引海量数据。而PHP是一个广泛使用的Web开发语言,因此,了解如何使用PHP操作Elasticsearch数据库将会大有裨益。安装Elasticsearch...
    99+
    2023-05-17
    PHP elasticsearch 数据库操作
  • 什么是原子操作?深入浅析go中的原子操作
    在我们前面的一些介绍 sync 包相关的文章中,我们应该也发现了,其中有不少地方使用了原子操作。 比如 sync.WaitGroup、sync.Map 再到 sync.Pool,这些结构体的实现中都有原子操作的身影。 原子操作在并发编程中是...
    99+
    2023-05-14
    原子操作 后端 Go
  • spring 操作elasticsearch查询使用方法
    最近学习了一下elasticsearch使用,网上的资料又很少,真是一个头两个大。好歹最后终于了解了。留个笔记做日后查询。package com.gooddeep.dev.elasticsearch.commons.dao; import...
    99+
    2023-05-31
    spring elasticsearch
  • Java多线程 原子性操作类的使用
    目录1. 基本类型的使用2. 数组类型的使用3. 引用类型的使用 4.字段类型的使用前言: 在java5以后,我们接触到了线程原子性操作,也就是在修改时我们只需要保证它的那个瞬间是安...
    99+
    2024-04-02
  • JavaCAS原子操作详解
    目录一.什么是CAS二.流程三.应用四.源码解析五.缺点六.ABA 问题及解决方案一.什么是CAS CAS(Compare And Swap,比较并交换),通常指的是这样一种原子操作...
    99+
    2023-02-02
    Java CAS Java CAS机制 Java原子操作
  • redis的操作是不是原子操作
    原子操作:incr、decr、incrby、decrby、getset、setnx。它们不可中断,要么完全执行,要么完全不执行。非原子操作:set、setex、del。它们可能会被中断,...
    99+
    2024-04-20
    redis
  • JDK8中新增的原子性操作类LongAdder详解
    前言本文主要给大家介绍了关于JDK8新增的原子性操作类LongAdder的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍:LongAdder简单介绍LongAdder类似于AtomicLong是原子性递增或者递减类,...
    99+
    2023-05-31
    jdk8 原子性 操作类longadder
  • 操作更新Excel工作表时,必须使用一个可更新的查询
    查询是一种用于从数据库中检索数据的技术,而Excel工作表并不是数据库。因此,不需要使用可更新的查询来更新Excel工作表。相反,您...
    99+
    2023-09-26
    Excel
  • 赋值是原子操作吗?
    ...
    99+
    2024-04-02
  • C++11原子操作详解
    目录C++11原子操作原子操作的概念示例总结C++11原子操作 原子操作的概念 所谓原子操作,其意义就是“原子是最小的,不可分割的最小个体”。**表示当多个线程访问同一个全局资源的时...
    99+
    2024-04-02
  • 使用java怎么对elasticsearch进行操作
    这期内容当中小编将会给大家带来有关使用java怎么对elasticsearch进行操作,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Java操作es集群步骤1:配置集群对象信息;2:创建客户端;3:查看集...
    99+
    2023-05-30
  • Elasticsearch的DSL操作命令怎么使用
    Elasticsearch的DSL操作命令可以通过发送HTTP请求来执行。以下是一些常见的DSL操作命令及其使用方法: 查询所有...
    99+
    2023-10-21
    DSL
  • 使系统操作更简单 使用Vista新增命令
     第二电脑网导读:了其他的一些新的命令、快捷操作方式,在此做一详细列表,希望能帮助朋友们提高在Windows Vista中的操作与管理效率。  Windows Vista中的新增命令(以字母顺序排序) :  A...
    99+
    2023-05-26
    Vista命令 系统 命令 Vista
  • redis原子操作实例分析
    这篇“redis原子操作实例分析”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“redis原...
    99+
    2024-04-02
  • C#原子操作实例分析
    这篇文章主要讲解了“C#原子操作实例分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C#原子操作实例分析”吧!知识点竞争条件当两个或两个以上的线程访问共享数据,并且尝试同时改变它时,就发生...
    99+
    2023-06-29
  • goland -sync/atomic原子操作小结
    目录1.go已经提供了锁,为什么还需要atomic原子操作2.atomic原子操作为什么比mutex快?3.CAS4.互斥锁与原子操作区别5.原子操作方法5.1 atomic.Add...
    99+
    2024-04-02
  • Java操作Elasticsearch rest-high-level-client 的基本使用
    目录Elasticsearch rest-high-level-client 基本操作前置准备1.配置依赖2.构建 RestHighLevelClient3.创建索引 client....
    99+
    2022-11-13
    Elasticsearch rest-high-level-client java Elasticsearch
  • Java原子操作类源码分析
    这篇文章主要介绍“Java原子操作类源码分析”,在日常操作中,相信很多人在Java原子操作类源码分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java原子操作类源码分析”的疑惑有所帮助!接下来,请跟着小编...
    99+
    2023-06-30
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作