2016-11-15 66 views
-3

我试图使用Elasticsearch为GO与这个著名的repoElasticsearch的CreateIndex()没有足够的论据

然而,当我试图创建一个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(没有足够的论据”事件“)。

这是为什么?我在这里错过什么?

回答

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测试案例,看看它是如何做。

+0

谢谢!虽然我没有得到'.TODO()'。那应该是什么? (并且感谢关于测试用例的建议) – Mornor

+1

这只是返回一个非空的上下文,你可以使用:https://godoc.org/golang.org/x/net/context#TODO – Val