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

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

展开
收起
游客6vdkhpqtie2h2 2022-09-14 11:17:03 500 分享 版权
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功能,免运维全托管,提升企业数据检索与运维分析能力。

收录在圈子:
还有其他疑问?
咨询AI助理