// Copyright 2013 Belogik. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package goes_test import ( "fmt" "net/http" "net/url" "os" "time" "github.com/OwnLocal/goes" ) var ( ES_HOST = "localhost" ES_PORT = "9200" ) func getClient() (conn *goes.Client) { h := os.Getenv("TEST_ELASTICSEARCH_HOST") if h == "" { h = ES_HOST } p := os.Getenv("TEST_ELASTICSEARCH_PORT") if p == "" { p = ES_PORT } conn = goes.NewClient(h, p) return } func ExampleClient_CreateIndex() { conn := getClient() mapping := map[string]interface{}{ "settings": map[string]interface{}{ "index.number_of_shards": 1, "index.number_of_replicas": 0, }, "mappings": map[string]interface{}{ "_default_": map[string]interface{}{ "_source": map[string]interface{}{ "enabled": true, }, "_all": map[string]interface{}{ "enabled": false, }, }, }, } resp, err := conn.CreateIndex("test", mapping) if err != nil { panic(err) } fmt.Printf("%s", resp) } func ExampleClient_DeleteIndex() { conn := getClient() resp, err := conn.DeleteIndex("yourinde") if err != nil { panic(err) } fmt.Printf("%s", resp) } func ExampleClient_RefreshIndex() { conn := getClient() resp, err := conn.RefreshIndex("yourindex") if err != nil { panic(err) } fmt.Printf("%s", resp) } func ExampleClient_Search() { conn := getClient() var query = map[string]interface{}{ "query": map[string]interface{}{ "bool": map[string]interface{}{ "must": map[string]interface{}{ "match_all": map[string]interface{}{}, }, }, }, "from": 0, "size": 100, "fields": []string{"onefield"}, "filter": map[string]interface{}{ "range": map[string]interface{}{ "somefield": map[string]interface{}{ "from": "some date", "to": "some date", "include_lower": false, "include_upper": false, }, }, }, } extraArgs := make(url.Values, 1) searchResults, err := conn.Search(query, []string{"someindex"}, []string{""}, extraArgs) if err != nil { panic(err) } fmt.Printf("%s", searchResults) } func ExampleClient_Index() { conn := getClient() d := goes.Document{ Index: "twitter", Type: "tweet", Fields: map[string]interface{}{ "user": "foo", "message": "bar", }, } extraArgs := make(url.Values, 1) extraArgs.Set("ttl", "86400000") response, err := conn.Index(d, extraArgs) if err != nil { panic(err) } fmt.Printf("%s", response) } func ExampleClient_Delete() { conn := getClient() //[create index, index document ...] d := goes.Document{ Index: "twitter", Type: "tweet", ID: "1", Fields: map[string]interface{}{ "user": "foo", }, } response, err := conn.Delete(d, url.Values{}) if err != nil { panic(err) } fmt.Printf("%s", response) } func ExampleClient_WithHTTPClient() { tr := &http.Transport{ ResponseHeaderTimeout: 1 * time.Second, } cl := &http.Client{ Transport: tr, } conn := getClient() conn.WithHTTPClient(cl) fmt.Printf("%v\n", conn.Client) }