golang中使用elasticsearch

本文介绍了如何使用Golang的olivere/elastic库操作Elasticsearch,探讨了API设计理念,将API分为元数据Service、数据Service和查询类,并提供了查询集群健康状态和实现文本模糊查找的实例。
摘要由CSDN通过智能技术生成

本文首发于我的个人博客

这是一篇介绍如何利用golang第三方库https://github.com/olivere/elastic进行elasticsearch的操作的文章。
文章中并不会介绍非常详细的API,更侧重于作者在工作中的使用经验和查文档经验。文章中主要包括以下内容:

  1. 作者认为比较重要的API设计理念以及文档查阅方式
  2. 作者在工作中使用到的elasticsearch的实例,包括从接到需求,查阅文档,并实现的过程

API设计理念思考

API的分类

在使用elasticsearch的golang Client过程中,我觉得可以将olivere/elastic的常用API分作三类:

  1. 面向elasticsearch的metadata的Service
  2. 面向elasticsearch的data的Service
  3. 面向Query

而这三类分别对应了对elasticsearch的不同类别的操作:

  1. 面向elasticsearch的metadata的Service,主要是对elasticsearch的metadata进行查询和操作,比如
    • 配置elasticsearch
    • 查询elasticsearch的状态,比如集群状态,节点数目等
  2. 面向elasticsearch的data的Service,住哟是对elasticsearch内的数据和数据格式进行操作
    1. elasticsearch中的index的metadata进行操作,比如
      1. 查询是否存在某个index
      2. 创建并配置index
    2. elasticsearch中的index下的document的增删改操作
  3. 面向Query,主要是对index下的document的查询操作

分类在代码中的体现

首先需要说明,在olivere/elastic的所有操作都是依靠生成一个XXXService对象然后XXXService.Do(ctx)来实现的,这里将他们分成面向Service和面向Query只是表示后者我们的主要精力都会集中在构造Query上

面向elasticsearch的metadata的Service

面向elasticsearch的metadata的Service,一般是通过建立连接的ESClient,新建出查询或者操作所需的Service,而后进行操作的模式

比如如下,查询集群内es节点数

// 建立连接的Client
esClient, _ := elastic<
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值