Elasticsearch CreateIndex()没有足够的参数

时间:2016-11-15 13:14:40

标签: elasticsearch go

我正在尝试使用Elasticsearch for GO与这个众所周知的repo

但是,当我尝试创建indexdocs时,也会将其作为示例here):

    // Define an elastic client 
    client, err := elastic.NewClient(elastic.SetURL("host1"))
    if err != nil {
        client, err := elastic.NewClient(elastic.SetURL("host2"))
        if err != nil {
            fmt.Println("Error when connecting Elasticsearch host");    
        }
    }

    // Create an index
    _, err = client.CreateIndex("events").Do()
    if err != nil {
        fmt.Println("Error when creating Elasticsearch index"); 
        panic(err)
    }

我收到以下错误,我不明白:

  

调用client.CreateIndex(“events”)时没有足够的参数。执行

为什么?我在这里想念什么?

1 个答案:

答案 0 :(得分:4)

IndicesCreateService.Do() function期望传递context.Context

因此,您需要导入"golang.org/x/net/context",然后将调用更改为:

import (
    ... your other imports...    
    "golang.org/x/net/context"
)
...
_, err := client.CreateIndex("events").Do(context.TODO())
                                                ^
                                                |
                                             add this

您还可以查看indices_create_test.go测试用例,了解它是如何完成的。