首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Go:如何获取ES数据

Go:如何获取ES数据

作者头像
沈宥
发布2024-07-11 10:20:03
发布2024-07-11 10:20:03
35500
代码可运行
举报
运行总次数:0
代码可运行

连接ES

  • 必要参数 [Addresses]ES连接地址 [Username]登录账号 [Password]登录账号密码
代码语言:javascript
代码运行次数:0
运行
复制
addresses := []string{"http://es-logdata-cluster-n0.host.com:9200"}
	config := elasticsearch.Config{
		Addresses: addresses,
		Username:  "Username",
		Password:  "Password",
	}

	es, err := elasticsearch.NewClient(config)
	if err != nil {
		log.Error(err, "Error creating the es client")
	}

	res, err := es.Info()
	if err != nil {
		log.Error(err, "Error getting es response")
	}

获取数据

  • 必要的参数: [index]es索引名称 [body]请求体搜索,即request body search,简单来说就是query语句,示例如下:
代码语言:javascript
代码运行次数:0
运行
复制
{
  "query": {
    "filtered": {
      "filter": {
1        { "term": { "brand": "gucci" }}
      }
    }
  },
  "aggs": {
    "colors": {
2      "terms": { "field": "color" },
    },
    "color_red": {
      "filter": {
3        "term": { "color": "red" }
      },
      "aggs": {
        "models": {
4          "terms": { "field": "model" }
        }
      }
    }
  },
5  "post_filter": {
    "term": { "color": "red" },
  }
}

[num]要获取查询结果的条数

代码语言:javascript
代码运行次数:0
运行
复制
buf := strings.NewReader(body)
	res, err = es.Search(
		es.Search.WithContext(context.Background()),
		es.Search.WithIndex(index),
		es.Search.WithIgnoreUnavailable(true),
		es.Search.WithBody(buf),
		es.Search.WithPretty(),
		es.Search.WithTrackTotalHits(true),
		es.Search.WithSize(num),
	)

	if err != nil {
		fmt.Println("err: ", err)
		log.Error(err, "Error getting response")
	}

	defer res.Body.Close()
	return  res.String()
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-05-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 从头开始学习测试开发 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 连接ES
  • 获取数据
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档