目的:需要根据不同的配置参数,连接不同的ES,应产生两个ES连接对象

目前代码是单例模式,即使传不同的参数,仍然是使用同一个对象实例。

type ES struct {
    client     *elastic.Client //查询ES
    prefix     string 
}

var esHandle *ES
var esOnce sync.Once

func NewES(prefix string, user, password string, retryStrSlice, urls []string, encrypt bool) *ES {
    es := &ES{}

    if err := es.Init(prefix, user, password, retryStrSlice, urls, encrypt); err != nil {
        panic(err)
        return es
    }
    return es
}

func GetES(prefix string, user, password string, retryStrSlice, urls []string, encrypt bool) *ES {
    esOnce.Do(func() {
        esHandle = NewES(prefix, user, password, retryStrSlice, urls, encrypt)
    })
    return esHandle
}