开发者社区 > 大数据与机器学习 > 检索分析服务 Elasticsearch版 > 正文

golang中如何指定 “_source” 实现,只查询部分字段 ?

golang中如何指定 “_source” 实现,只查询部分字段 ?

展开
收起
游客6vdkhpqtie2h2 2022-09-14 11:17:03 437 0
1 条回答
写回答
取消 提交回答
  • CSDN全栈领域优质创作者,万粉博主;InfoQ签约博主;华为云享专家;华为Iot专家;亚马逊人工智能自动驾驶(大众组)吉尼斯世界纪录获得者

    在Golang中,可以使用Elasticsearch的“_source”字段来指定要返回的数据字段。如果只想查询部分字段,则需要使用以下方法:

    1. 在查询时,只指定要返回的字段名称:
    res, err := client.Search(indexName, typeName, query, nil)
    if err != nil {
        log.Fatalf("Error searching index %s for type %s: %v", indexName, typeName, err)
    }
    defer res.Body.Close()
    
    var searchResult SearchResult
    if err := json.NewDecoder(res.Body).Decode(&searchResult); err != nil {
        log.Fatalf("Error decoding search result: %v", err)
    }
    

    在这个例子中,我们只指定了要返回的字段名称,即“message”。

    1. 在查询时,使用“_source”选项来限制返回的字段:
    res, err := client.SearchSource(query).Sort("_score").Size(size).Fields("message").execute()
    if err != nil {
        log.Fatalf("Error searching index %s for type %s: %v", indexName, typeName, err)
    }
    defer res.Body.Close()
    
    var searchResult SearchResult
    if err := json.NewDecoder(res.Body).Decode(&searchResult); err != nil {
        log.Fatalf("Error decoding search result: %v", err)
    }```
    
    在这个例子中,我们在查询时使用了“_source”选项来限制返回的字段为“message”。注意,这个选项只能在使用“Search”方法时使用。
    2023-05-12 16:55:50
    赞同 展开评论 打赏

阿里云检索分析服务Elasticsearch版兼容开源ELK功能,免运维全托管,提升企业数据检索与运维分析能力。

热门讨论

热门文章

相关电子书

更多
阿里开发者手册-Golang专题 立即下载
Golang 微服务在腾讯游戏用户运营领域的探索及实践 立即下载
gohbase :HBase go客户端 立即下载