github.com/olivere/elastic/v7库无法连接带账号密码的ES库

发布于 2022-09-12 03:03:54 字数 447 浏览 20 评论 0

我使用go的github.com/olivere/elastic/v7库连接es,但是无法连接带密码的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?
谢谢!!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

中二柚 2022-09-19 03:03:54

问题已解决!!
原因是,es集群上根据不同索引创建了不同的用户,官方库可以使用小权限用户连接集群,而olivere需要使用最大权限账户才可以连接。

倾城月光淡如水﹏ 2022-09-19 03:03:54

olivere可以使用小权限的账户,但是需要在连接的时候指定index,并且指定index后,查询时就不能再指定index,比如:

    client, err := elastic.NewClient(
        elastic.SetBasicAuth("user", "password"),
        elastic.SetURL("http://xxx:9200/index1"), //指定index授权
        elastic.SetSniff(false),
        elastic.SetHealthcheckInterval(10*time.Second),
        elastic.SetMaxRetries(5),
        elastic.SetErrorLog(log.New(os.Stderr, "ELASTIC ", log.LstdFlags)),
        elastic.SetInfoLog(log.New(os.Stdout, "", log.LstdFlags)),
    )
    if err != nil {
        // Handle error
        panic(err)
    }

    ctx := context.Background()
    searchResult, err := client.Search().
        //Index("index1").  // 此时不可再指定index
        //Query(termQuery). // 指定查询条件
        //Sort("id", true). // 按id升序排序
        //From(0).Size(10). // 拿前10个结果
        Pretty(true).
        Do(ctx) // 执行
    if err != nil {
        panic(err)
    }
    total := searchResult.TotalHits()
    fmt.Printf("Found %d subjects\n", total)
    if total > 0 {
        for _, item := range searchResult.Each(reflect.TypeOf(ESObject)) {
            if t, ok := item.(ESObject); ok {
                fmt.Printf("Found: ESObject(id=%d)\n", t.id)
            }
        }

    } else {
        fmt.Println("Not found!")
    }
暖心男生 2022-09-19 03:03:54

olivere能使用小权限的账户吗,现在只有小权限账户怎么解决

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文