使用olivere/elastic/v7库连接带密码的ES库时,为什么会出现“health check timeout”错误?

使用olivere/elastic/v7库连接带密码的es库时,为什么会出现“health check timeout”错误?

github.com/olivere/elastic/v7库连接es库时出现问题

在使用elasticsearch时,您使用github.com/olivere/elastic/v7库尝试连接到带密码的es库,但遇到了问题。具体来说,您使用以下代码连接:

client, err = elastic.NewClient(
    // elastic.SetSniff(false),
    elastic.SetHealthcheckInterval(10*time.Second),
    elastic.SetMaxRetries(3),
    elastic.SetURL("http://xx:9200"),
    elastic.SetBasicAuth("username", "password"),
)

但遇到了 "health check timeout: no elasticsearch node available" 的错误。

解决方法

问题在于,es集群根据不同索引创建了不同的用户。官方库可以使用小权限用户连接集群,而olivere需要使用具有最大权限的帐户才能连接。因此,需要使用具有最大权限的帐户连接es库。

以上就是使用olivere/elastic/v7库连接带密码的ES库时,为什么会出现“health check timeout”错误?的详细内容,更多请关注www.sxiaw.com其它相关文章!