// SaveDataIntoES save metrics and events to ES by using ES client func SaveDataIntoES(esClient *elastic.Client, indexName string, typeName string, sinkData interface{}) error { if indexName == "" || typeName == "" || sinkData == nil { return nil } // Use the IndexExists service to check if a specified index exists. exists, err := esClient.IndexExists(indexName).Do() if err != nil { return err } if !exists { // Create a new index. createIndex, err := esClient.CreateIndex(indexName).Do() if err != nil { return err } if !createIndex.Acknowledged { return fmt.Errorf("failed to create Index in ES cluster: %s", err) } } indexID := uuid.NewUUID() _, err = esClient.Index(). Index(indexName). Type(typeName). Id(string(indexID)). BodyJson(sinkData). Do() if err != nil { return err } return nil }
func es_push(es *elastic.Client, idx, typ string, m media) { if es == nil { return } r, err := es.Index().Index(idx).Type(typ).Id(strconv.Itoa(m.MediaId)).BodyJson(m).Do() log.Println(r, err) }