Как вставить данные в Elasticsearch с помощью Olivere в Golang - PullRequest
0 голосов
/ 01 декабря 2018

Мне нужен правильный пример, где я могу вставить данные в эластичный поиск, используя olivere in golang.Я собрал данные, и он распечатывает результат для каждой вставляемой информации.Проблема в том, что в эластичный поиск нет данных.

Это код для сбора данных, которые будут вставлены в эластичный поиск.

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")
    }

Кто-нибудь может привести полный пример того, как вставить данные в эластичный поиск с помощью пакета olivere в golang?

Спасибо}

1 Ответ

0 голосов
/ 01 декабря 2018

Для вставки данных в 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 *astic.Client;
  • e.ctx является контекстом. Контекст
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...