func main() { core.DebugRequests = true log.SetFlags(log.LstdFlags) flag.Parse() fmt.Println("host = ", *host) // Set the Elasticsearch Host to Connect to api.Domain = *host // Index a document _, err := core.Index(false, "testindex", "user", "docid_1", `{"name":"bob"}`) exitIfErr(err) // Index a doc using a map of values _, err = core.Index(false, "testindex", "user", "docid_2", map[string]string{"name": "venkatesh"}) exitIfErr(err) // Index a doc using Structs _, err = core.Index(false, "testindex", "user", "docid_3", MyUser{"wanda", 22}) exitIfErr(err) // Search Using Raw json String searchJson := `{ "query" : { "term" : { "name" : "wanda" } } }` out, err := core.SearchRequest(true, "testindex", "user", searchJson, "") if len(out.Hits.Hits) == 1 { fmt.Println(string(out.Hits.Hits[0].Source)) } exitIfErr(err) }
// for testing func main() { flag.Parse() log.SetFlags(log.Ltime | log.Lshortfile) api.Domain = *eshost response, _ := core.Index(true, "twitter", "tweet", "1", NewTweet("kimchy", "Search is cool")) indices.Flush() log.Printf("Index OK: %v", response.Ok) searchresponse, err := core.SearchRequest(true, "twitter", "tweet", "{\"query\" : {\"term\" : { \"user\" : \"kimchy\" }}}", "", 0) if err != nil { log.Println("error during search:" + err.Error()) log.Fatal(err) } // try marshalling to tweet type var t Tweet json.Unmarshal(searchresponse.Hits.Hits[0].Source, t) log.Printf("Search Found: %s", t) response, _ = core.Get(true, "twitter", "tweet", "1") log.Printf("Get: %v", response.Exists) exists, _ := core.Exists(true, "twitter", "tweet", "1") log.Printf("Exists: %v", exists) indices.Flush() countResponse, _ := core.Count(true, "twitter", "tweet") log.Printf("Count: %v", countResponse.Count) response, _ = core.Delete(true, "twitter", "tweet", "1", -1, "") log.Printf("Delete OK: %v", response.Ok) response, _ = core.Get(true, "twitter", "tweet", "1") log.Printf("Get: %v", response.Exists) healthResponse, _ := cluster.Health(true) log.Printf("Health: %v", healthResponse.Status) cluster.State("transient", "discovery.zen.minimum_master_nodes", 2) }
func TestSearchRequest(t *testing.T) { qry := map[string]interface{}{ "query": map[string]interface{}{ "wildcard": map[string]string{"actor": "a*"}, }, } out, err := core.SearchRequest(true, "github", "", qry, "", 0) //log.Println(out) u.Assert(&out != nil && err == nil, t, "Should get docs") u.Assert(out.Hits.Total == 616 && out.Hits.Len() == 10, t, "Should have 616 hits but was %v", out.Hits.Total) }