goes/example_test.go

184 lines
3.1 KiB
Go
Raw Permalink Normal View History

2013-06-15 14:18:48 +08:00
// 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"
2014-05-30 05:01:39 +08:00
"net/http"
2013-06-15 14:18:48 +08:00
"net/url"
"os"
2014-05-30 05:01:39 +08:00
"time"
"github.com/OwnLocal/goes"
2013-06-15 14:18:48 +08:00
)
var (
ES_HOST = "localhost"
ES_PORT = "9200"
)
2016-09-28 03:19:07 +08:00
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
}
2016-09-28 02:56:13 +08:00
conn = goes.NewClient(h, p)
return
}
2016-09-28 03:19:07 +08:00
func ExampleClient_CreateIndex() {
conn := getClient()
2013-06-15 14:18:48 +08:00
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)
}
2016-09-28 03:19:07 +08:00
func ExampleClient_DeleteIndex() {
conn := getClient()
2013-06-15 14:18:48 +08:00
resp, err := conn.DeleteIndex("yourinde")
if err != nil {
panic(err)
}
fmt.Printf("%s", resp)
}
2016-09-28 03:19:07 +08:00
func ExampleClient_RefreshIndex() {
conn := getClient()
2013-06-15 14:18:48 +08:00
resp, err := conn.RefreshIndex("yourindex")
if err != nil {
panic(err)
}
fmt.Printf("%s", resp)
}
2016-09-28 03:19:07 +08:00
func ExampleClient_Search() {
conn := getClient()
2013-06-15 14:18:48 +08:00
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,
},
},
},
}
2014-05-30 05:01:39 +08:00
extraArgs := make(url.Values, 1)
2013-06-15 14:18:48 +08:00
searchResults, err := conn.Search(query, []string{"someindex"}, []string{""}, extraArgs)
2013-06-15 14:18:48 +08:00
if err != nil {
panic(err)
}
fmt.Printf("%s", searchResults)
}
2016-09-28 03:19:07 +08:00
func ExampleClient_Index() {
conn := getClient()
2013-06-15 14:18:48 +08:00
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)
}
2016-09-28 03:19:07 +08:00
func ExampleClient_Delete() {
conn := getClient()
2013-06-15 14:18:48 +08:00
//[create index, index document ...]
d := goes.Document{
Index: "twitter",
Type: "tweet",
2016-09-28 03:19:07 +08:00
ID: "1",
2013-06-15 14:18:48 +08:00
Fields: map[string]interface{}{
"user": "foo",
},
}
response, err := conn.Delete(d, url.Values{})
if err != nil {
panic(err)
}
fmt.Printf("%s", response)
}
2014-05-30 05:01:39 +08:00
2016-09-28 03:19:07 +08:00
func ExampleClient_WithHTTPClient() {
2014-05-30 05:01:39 +08:00
tr := &http.Transport{
ResponseHeaderTimeout: 1 * time.Second,
}
cl := &http.Client{
Transport: tr,
}
2016-09-28 03:19:07 +08:00
conn := getClient()
2016-09-28 02:56:13 +08:00
conn.WithHTTPClient(cl)
2014-05-30 05:01:39 +08:00
fmt.Printf("%v\n", conn.Client)
}