Go Elasticsearch 增删改查(CRUD)快速入门

这篇具有很好参考价值的文章主要介绍了Go Elasticsearch 增删改查(CRUD)快速入门。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Go Elasticsearch 增删改查(CRUD)快速入门

文章目录

  • 1.入门简介
  • 2.客户端库
  • 3.创建客户端
  • 4.index 增删改查
  • 5.增加
  • 6.删除
  • 7.修改
  • 8.查询
  • 9.小结
  • 参考文献

1.入门简介

Elasticsearch 入门简介

2.客户端库

ES 的 Go 客户端较为流行的有 Elastic 公司官方库go-elasticsearch 和第三方库 olivere/elastic,后者较为流行。

因项目中使用的是 olivere/elastic/v7,所以本文将介绍通过该库完成对 ES 的增删改查。

注意,ES 不同版本需要使用对应版本的 olivere/elastic 包,对应关系如下:

Elasticsearch version

Elastic version

Package URL

Remarks

7.x

7.0

github.com/olivere/elastic/v7

Use Go modules

6.x

6.0

github.com/olivere/elastic

Use a dependency manager

5.x

5.0

gopkg.in/olivere/elastic.v5

Actively maintained

本次使用 ES 的 7.x 的版本,所以使用 github.com/olivere/elastic/v7 作为客户端库,使用 go.mod 来管理依赖:

require(
	github.com/olivere/elastic/v7 v7.0.24
)

3.创建客户端

前面铺垫了这么多基础概念,下面正式开始 Go ES 的增删改查。

在开始实战之前,先介绍一下本文代码示例要实现的功能:

  • 添加用户信息
  • 更新用户信息
  • 删除用户信息
  • 根据 ID 查询单个用户
  • 根据用户信息分页查询相关用户

在进行开发之前,需要创建一个 client,用于操作 ES。这里使用单例模式来实现。

// ES 客户端
var (
	esOnce sync.Once
	esCli  *elastic.Client
)

// GetESClient 获取 ES client
func GetESClient() *elastic.Client {
	if esCli != nil {
		return esCli
	}

	esOnce.Do(func() {
		cli, err := elastic.NewSimpleClient(
			elastic.SetURL("http://test.es.db"),    // 服务地址
			elastic.SetBasicAuth("user", "secret"), // 账号密码
			elastic.SetErrorLog(log.New(os.Stderr, "", log.LstdFlags)), 	// 设置错误日志输出
			elastic.SetInfoLog(log.New(os.Stdout, "", log.LstdFlags)),  	// 设置info日志输出
		)
		if err != nil {
			panic("new es client failed, err=" + err.Error())
		}
		esCli = cli
	})
	return esCli
}

这里创建 ES client 是使用的 NewSimpleClient() 这个方法进行实现的,当然也可以使用另外两个方法:

// NewClient creates a new client to work with Elasticsearch.
func NewClient(options ...ClientOptionFunc) (*Client, error)

// NewClientFromConfig initializes a client from a configuration
func NewClientFromConfig(cfg *config.Config) (*Client, error)

创建时可以提供 ES 连接参数。上面列举的不全,下面给大家介绍一下。

elastic.SetURL(url) 用来设置ES服务地址,如果是本地,就是127.0.0.1:9200。支持多个地址,用逗号分隔即可
elastic.SetBasicAuth("user", "secret") 这个是基于http base auth 验证机制的账号密码
elastic.SetGzip(true) 启动 gzip 压缩
elastic.SetHealthcheckInterval(10*time.Second) 用来设置监控检查时间间隔
elastic.SetMaxRetries(5) 设置请求失败最大重试次数,v7 版本以后已被弃用
elastic.SetSniff(false) 设置是否定期检查集群(默认为true)
elastic.SetErrorLog(log.New(os.Stderr, " ", log.LstdFlags)) 设置错误日志输出
elastic.SetInfoLog(log.New(os.Stdout, "", log.LstdFlags)) 设置info日志输出

4.index 增删改查

Go Elasticsearch index 增删改查

5.增加

Go Elasticsearch 增加快速入门

6.删除

Go Elasticsearch 删除快速入门

7.修改

Go Elasticsearch 更新快速入门

8.查询

Go Elasticsearch 查询快速入门

9.小结

本文从 ES 的基本概念讲起,然后通过包 github/olivere/elastic/v7 完成 ES 基本的增删改查,并给出对应的 RESTful API 操作语句。

ES 功能太过强大,以至于客户端接口也极其繁多,再加上缺少通俗易懂的说明文档,真地让人眼花缭乱,对初学者来说使用起来并不那么友好。

关于 ES 的搜索能力,本文并未给出过多的相关的示例,后续有机会再另起博文续更。


参考文献

github/elastic/elasticsearch
github/olivere/elastic/v7
pkg.go.dev/github.com/olivere/elastic/v7
DB-Engines Ranking
百度百科.elasticsearch
云+社区.Elasticsearch数据更新全方位解析
golang elasticsearch入门教程- 梯子教程网
golang elasticsearch 查询教程- 梯子教程网
Elasticsearch: 权威指南
go-ElasticSearch入门看这一篇就够了(一)
Golang梦工厂.go-elasticSearch 实战篇,带你学会增删改查
Elasticsearch - mappings之dynamic的三种状态
Elasticsearch Guide [7.13] ? REST APIs ? Document APIs ? ?refresh
Elasticsearch Guide [7.13] ? REST APIs ? Document APIs ? Delete by query API
Elasticsearch Guide [7.14] ? Search your data ? Retrieve selected fields from a search
Elasticsearch Guide [7.14] ? Query DSL ? Compound queries ? Boolean query
Elasticsearch Guide [8.0] ? Mapping ? Field data types文章来源地址https://www.toymoban.com/news/detail-404740.html

到了这里,关于Go Elasticsearch 增删改查(CRUD)快速入门的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • LayUI之CRUD(增删改查)

    目录 一、前期准备 1.数据表格 2.弹出层 3.用户表数据查询  二、用户管理后台编写 三、前端JS编写 四、效果展示 1.数据表格 在layui官网找到我们需要的数据表格  根据需求复制修改代码,再找到表单复制一个输入框和按钮,做一个搜索功能 用户管理JSP页面---userManage.jsp 2.弹

    2024年02月17日
    浏览(32)
  • SpringMVC之CRUD(增删改查)

    SpringMVC之CRUD(增删改查) 数据库 公共页面跳转,配置。。。 后台接口准备 ssm的增删改查 1.先逆向生成对应的类(model,mapper.xml,mapper.java) 2.biz层 3.web层(依托于自定义mvc的分页标签==pom.xml) 4.前端

    2024年02月09日
    浏览(34)
  • SpringMVC增删改查(CRUD)的实现

    目录 前言 一、前期准备 1.pom.xml---依赖与插件的导入 2.jdbc.properties---数据库连接  3.log4j2.xml---日志文件 4.spring-mybatis---mybatis与spring整合文件 5.spring-context---spring上下文配置 6.spring-mvc 7.generatorConfig.xml---代码生成器 8.web.xml 二、增删改查的实现 1.model与mapper层的生成 2.biz层与切面

    2024年02月09日
    浏览(27)
  • Springboot整合mybatis实现增删改查(crud)

    今天我们来学习一个Springboot案例!! 那么什么是SpringBoot技术呢? Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。 该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。 Spring Boot致力于在蓬

    2024年01月22日
    浏览(31)
  • 第一个mybatis程序,实现增删改查CRUD

    mybatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache迁移到了googlecode,并且改名为MyBatis,2013年11月迁移到Github。 MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。 MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。 MyBatis 可

    2024年02月02日
    浏览(30)
  • 【MySQL】MySQL表的增删改查(CRUD)

    ✨个人主页:bit me👇 ✨当前专栏:MySQL数据库👇 ✨算法专栏:算法基础👇 ✨每日一语:生命久如暗室,不碍朝歌暮诗   CRUD : Create,Retrieve,Update,Delete 新增数据 查询数据 修改数据 删除数据 MySQL的工作就是组织管理数据,先保存,保存好了后好进行增删改查 增删改查的

    2024年02月02日
    浏览(37)
  • Spring-MVC的crud增删改查--详细讲解

    目录 一.前言 二.crud---配置文件  2.1 pom.xml文件 2.2 web.xml文件  2.3 spring-context.xml 2.4 spring-mvc.xml 2.5 spring-MyBatis.xml  2.6 jdbc.properties数据库配置文件 2.7 generatorConfig.xml  2.8 日志文件log4j 三.后台          3.1 pageBean.java  3.2 pageTag 3.3 切面类 3.4 biz层 3.5 web层 四.前端  4.1 list.jsp 4

    2024年02月09日
    浏览(34)
  • mybatis实现CRUD详解(使用mapper映射文件实现增删改查)

    创建maven项目:项目结构如图所示 准备数据库表: 准备pom.xml所需的依赖: 编写核心配置文件加载所需要的资源 编写config.xml文件 创建工厂连接数据处理工具SqlSessionUtil.java SqlSessionUtil.java 创建学生实体类对象Student.java 1、查询所有学生信息: 创建接口StudentDao.java:向其中添加

    2023年04月23日
    浏览(28)
  • 【MySQL】一文带你了解表的增删改查 CRUD

    语法 insert [into] table_name [(column [, column] …)] values (value_list) [, (value_list)] … 可能有点复杂,其实很简单,下面有分部的简单的解释。 1.1 单行插入 + 全列插入 1.2 多行插入 + 指定列插入 语法 select [distinct] {* | column [, column] …} [from table_name] [where …] [order by column [asc | desc], …]

    2024年02月08日
    浏览(28)
  • 【数据库】 | 数据库的增删改查CRUD(基础篇)

    🎗️ 主页:小夜时雨 🎗️ 专栏:MySQL数据库 🎗️ 乾坤未定,你我皆黑马 1.1 显示当前的数据库 SHOW DATABASES; //注意sql语句不区分大小写 1.2 创建数据库 CREATE DATABASE [IF NOT EXISTS] db_name (db_name 是创建数据库的名字) 1.3 使用数据库 use 数据库名; 1.4 删除数据库 DROP DATABASE [IF

    2023年04月24日
    浏览(34)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包