前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Go:如何获取ES数据

Go:如何获取ES数据

作者头像
沈宥
发布2024-07-11 10:20:03
1180
发布2024-07-11 10:20:03
举报
文章被收录于专栏:从头开始学习测试开发

连接ES

  • 必要参数 [Addresses]ES连接地址 [Username]登录账号 [Password]登录账号密码
代码语言:javascript
复制
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
复制
{
  "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
复制
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
  • 获取数据
相关产品与服务
Elasticsearch Service
腾讯云 Elasticsearch Service(ES)是云端全托管海量数据检索分析服务,拥有高性能自研内核,集成X-Pack。ES 支持通过自治索引、存算分离、集群巡检等特性轻松管理集群,也支持免运维、自动弹性、按需使用的 Serverless 模式。使用 ES 您可以高效构建信息检索、日志分析、运维监控等服务,它独特的向量检索还可助您构建基于语义、图像的AI深度应用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档