登录
首页 >  Golang >  Go问答

如何在 Golang 中使用 Olivere 将数据插入 Elasticsearch

来源:stackoverflow

时间:2024-04-29 10:24:33 344浏览 收藏

学习Golang要努力,但是不要急!今天的这篇文章《如何在 Golang 中使用 Olivere 将数据插入 Elasticsearch》将会介绍到等等知识点,如果你想深入学习Golang,可以关注我!我会持续更新相关文章的,希望对大家都能有所帮助!

问题内容

我需要一个正确的示例,在其中我可以使用 golang 中的 olivere 将数据插入到 elasticsearch 中。我已经收集了数据,并打印了将插入的每个数据的结果。问题是没有数据插入到elasticsearch中。

这是收集将插入到elasticsearch中的数据的代码。

indexing := company
indextype := employee 
data := lists{Id: id__,
            Article_id:      id_row,
            Category_id:     category_id,
            Datee:           date,
            Media_id:        media,
            Mention_times:   mention,
            Data_input_date: data_input_date,
            User:           user,
            name:         pc_name}

//Save to Elastic using olivere 
response := elastic.NewBulkIndexRequest().Index(indexing).Type(indextype).Id(id__).Doc(data)  
if response != nil {
        fmt.Println("Print the result", OlivereResponse)
    } 
/* log the result 
 Print the result for inserting to elastic using olivere {"index": 
{"_index":"company","_id":"2660e1","_type":"employee"}}
{"id":"26688","article_id":20,"category_id":"farming","datee":"2018-11-23","media_id":8, Mention_times: "20", "data_input_date":"2018-12-01 15:42:22","usere":"robot-kwd41","pc_name":"server"}
*/



 if OlivereResponse == nil {
       fmt.Println("Response returns null when inserting to elasticsearch using 
          olivere")
    }

任何人都可以提供一个完整的示例,如何使用 golang 中的 olivere 包将数据插入到 elasticsearch 中?

谢谢 }


解决方案


要将数据插入 elastic,我使用这样的代码:

func (e *Elastic) SaveDocument(index string, id string, data interface{}) error {
    _, err := e.client.Index().Index(index).Type("entity").Id(id).
        BodyJson(data).Refresh("true").Do(e.ctx)

    if err != nil {
        e.fileLogger.Log(data)
        fmt.Printf("Error save document to elastic search: %s. Save log to file\n", err.Error())
    }

    return err
}

这里是:

  • e.client 是 f *elastic.client 的实例;
  • e.ctx 是一个 context.context

到这里,我们也就讲完了《如何在 Golang 中使用 Olivere 将数据插入 Elasticsearch》的内容了。个人认为,基础知识的学习和巩固,是为了更好的将其运用到项目中,欢迎关注golang学习网公众号,带你了解更多关于的知识点!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>