我正在尝试使用Elasticsearch for GO与这个众所周知的repo
但是,当我尝试创建index
(docs时,也会将其作为示例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”)时没有足够的参数。执行
为什么?我在这里想念什么?
答案 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
测试用例,了解它是如何完成的。