summaryrefslogtreecommitdiffstats
path: root/vendor/gopkg.in/olivere/elastic.v5/setup_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/gopkg.in/olivere/elastic.v5/setup_test.go')
-rw-r--r--vendor/gopkg.in/olivere/elastic.v5/setup_test.go235
1 files changed, 206 insertions, 29 deletions
diff --git a/vendor/gopkg.in/olivere/elastic.v5/setup_test.go b/vendor/gopkg.in/olivere/elastic.v5/setup_test.go
index df2206a14..480ae5d20 100644
--- a/vendor/gopkg.in/olivere/elastic.v5/setup_test.go
+++ b/vendor/gopkg.in/olivere/elastic.v5/setup_test.go
@@ -16,6 +16,7 @@ import (
const (
testIndexName = "elastic-test"
testIndexName2 = "elastic-test2"
+ testIndexName3 = "elastic-test3"
testMapping = `
{
"settings":{
@@ -23,12 +24,49 @@ const (
"number_of_replicas":0
},
"mappings":{
- "_default_": {
- "_all": {
- "enabled": true
+ "doc":{
+ "properties":{
+ "user":{
+ "type":"keyword"
+ },
+ "message":{
+ "type":"text",
+ "store": true,
+ "fielddata": true
+ },
+ "tags":{
+ "type":"keyword"
+ },
+ "location":{
+ "type":"geo_point"
+ },
+ "suggest_field":{
+ "type":"completion",
+ "contexts":[
+ {
+ "name":"user_name",
+ "type":"category"
+ }
+ ]
+ }
}
- },
- "tweet":{
+ }
+ }
+}
+`
+
+ testNoSourceIndexName = "elastic-nosource-test"
+ testNoSourceMapping = `
+{
+ "settings":{
+ "number_of_shards":1,
+ "number_of_replicas":0
+ },
+ "mappings":{
+ "doc":{
+ "_source": {
+ "enabled": false
+ },
"properties":{
"user":{
"type":"keyword"
@@ -48,19 +86,51 @@ const (
"type":"completion",
"contexts":[
{
- "name": "user_name",
- "type": "category"
+ "name":"user_name",
+ "type":"category"
}
]
}
}
+ }
+ }
+}
+`
+
+ testJoinIndex = "elastic-joins"
+ testJoinMapping = `
+ {
+ "settings":{
+ "number_of_shards":1,
+ "number_of_replicas":0
},
- "comment":{
- "_parent": {
- "type": "tweet"
+ "mappings":{
+ "doc":{
+ "properties":{
+ "message":{
+ "type":"text"
+ },
+ "my_join_field": {
+ "type": "join",
+ "relations": {
+ "question": "answer"
+ }
+ }
+ }
}
- },
- "order":{
+ }
+ }
+`
+
+ testOrderIndex = "elastic-orders"
+ testOrderMapping = `
+{
+ "settings":{
+ "number_of_shards":1,
+ "number_of_replicas":0
+ },
+ "mappings":{
+ "doc":{
"properties":{
"article":{
"type":"text"
@@ -76,18 +146,49 @@ const (
"format": "YYYY-MM-dd"
}
}
- },
- "doctype":{
+ }
+ }
+}
+`
+
+ /*
+ testDoctypeIndex = "elastic-doctypes"
+ testDoctypeMapping = `
+ {
+ "settings":{
+ "number_of_shards":1,
+ "number_of_replicas":0
+ },
+ "mappings":{
+ "doc":{
+ "properties":{
+ "message":{
+ "type":"text",
+ "store": true,
+ "fielddata": true
+ }
+ }
+ }
+ }
+ }
+ `
+ */
+
+ testQueryIndex = "elastic-queries"
+ testQueryMapping = `
+{
+ "settings":{
+ "number_of_shards":1,
+ "number_of_replicas":0
+ },
+ "mappings":{
+ "doc":{
"properties":{
"message":{
"type":"text",
"store": true,
"fielddata": true
- }
- }
- },
- "queries":{
- "properties": {
+ },
"query": {
"type": "percolator"
}
@@ -123,6 +224,16 @@ func (c comment) String() string {
return fmt.Sprintf("comment{User:%q,Comment:%q}", c.User, c.Comment)
}
+type joinDoc struct {
+ Message string `json:"message"`
+ JoinField interface{} `json:"my_join_field,omitempty"`
+}
+
+type joinField struct {
+ Name string `json:"name"`
+ Parent string `json:"parent,omitempty"`
+}
+
type order struct {
Article string `json:"article"`
Manufacturer string `json:"manufacturer"`
@@ -173,6 +284,12 @@ func setupTestClient(t logger, options ...ClientOptionFunc) (client *Client) {
client.DeleteIndex(testIndexName).Do(context.TODO())
client.DeleteIndex(testIndexName2).Do(context.TODO())
+ client.DeleteIndex(testIndexName3).Do(context.TODO())
+ client.DeleteIndex(testOrderIndex).Do(context.TODO())
+ client.DeleteIndex(testNoSourceIndexName).Do(context.TODO())
+ //client.DeleteIndex(testDoctypeIndex).Do(context.TODO())
+ client.DeleteIndex(testQueryIndex).Do(context.TODO())
+ client.DeleteIndex(testJoinIndex).Do(context.TODO())
return client
}
@@ -198,6 +315,24 @@ func setupTestClientAndCreateIndex(t logger, options ...ClientOptionFunc) *Clien
t.Errorf("expected result to be != nil; got: %v", createIndex2)
}
+ // Create no source index
+ createNoSourceIndex, err := client.CreateIndex(testNoSourceIndexName).Body(testNoSourceMapping).Do(context.TODO())
+ if err != nil {
+ t.Fatal(err)
+ }
+ if createNoSourceIndex == nil {
+ t.Errorf("expected result to be != nil; got: %v", createNoSourceIndex)
+ }
+
+ // Create order index
+ createOrderIndex, err := client.CreateIndex(testOrderIndex).Body(testOrderMapping).Do(context.TODO())
+ if err != nil {
+ t.Fatal(err)
+ }
+ if createOrderIndex == nil {
+ t.Errorf("expected result to be != nil; got: %v", createOrderIndex)
+ }
+
return client
}
@@ -212,24 +347,26 @@ func setupTestClientAndCreateIndexAndAddDocs(t logger, options ...ClientOptionFu
tweet1 := tweet{User: "olivere", Message: "Welcome to Golang and Elasticsearch."}
tweet2 := tweet{User: "olivere", Message: "Another unrelated topic."}
tweet3 := tweet{User: "sandrae", Message: "Cycling is fun."}
- comment1 := comment{User: "nico", Comment: "You bet."}
+ //comment1 := comment{User: "nico", Comment: "You bet."}
- _, err := client.Index().Index(testIndexName).Type("tweet").Id("1").BodyJson(&tweet1).Do(context.TODO())
+ _, err := client.Index().Index(testIndexName).Type("doc").Id("1").BodyJson(&tweet1).Do(context.TODO())
if err != nil {
t.Fatal(err)
}
- _, err = client.Index().Index(testIndexName).Type("tweet").Id("2").BodyJson(&tweet2).Do(context.TODO())
+ _, err = client.Index().Index(testIndexName).Type("doc").Id("2").BodyJson(&tweet2).Do(context.TODO())
if err != nil {
t.Fatal(err)
}
- _, err = client.Index().Index(testIndexName).Type("tweet").Id("3").Routing("someroutingkey").BodyJson(&tweet3).Do(context.TODO())
- if err != nil {
- t.Fatal(err)
- }
- _, err = client.Index().Index(testIndexName).Type("comment").Id("1").Parent("3").BodyJson(&comment1).Do(context.TODO())
+ _, err = client.Index().Index(testIndexName).Type("doc").Id("3").Routing("someroutingkey").BodyJson(&tweet3).Do(context.TODO())
if err != nil {
t.Fatal(err)
}
+ /*
+ _, err = client.Index().Index(testIndexName).Type("comment").Id("1").Parent("3").BodyJson(&comment1).Do(context.TODO())
+ if err != nil {
+ t.Fatal(err)
+ }
+ */
// Add orders
var orders []order
@@ -243,20 +380,44 @@ func setupTestClientAndCreateIndexAndAddDocs(t logger, options ...ClientOptionFu
orders = append(orders, order{Article: "T-Shirt", Manufacturer: "h&m", Price: 19, Time: "2015-06-18"})
for i, o := range orders {
id := fmt.Sprintf("%d", i)
- _, err = client.Index().Index(testIndexName).Type("order").Id(id).BodyJson(&o).Do(context.TODO())
+ _, err = client.Index().Index(testOrderIndex).Type("doc").Id(id).BodyJson(&o).Do(context.TODO())
if err != nil {
t.Fatal(err)
}
}
// Flush
- _, err = client.Flush().Index(testIndexName).Do(context.TODO())
+ _, err = client.Flush().Index(testIndexName, testOrderIndex).Do(context.TODO())
if err != nil {
t.Fatal(err)
}
return client
}
+func setupTestClientAndCreateIndexAndAddDocsNoSource(t logger, options ...ClientOptionFunc) *Client {
+ client := setupTestClientAndCreateIndex(t, options...)
+
+ // Add tweets
+ tweet1 := tweet{User: "olivere", Message: "Welcome to Golang and Elasticsearch."}
+ tweet2 := tweet{User: "olivere", Message: "Another unrelated topic."}
+
+ _, err := client.Index().Index(testNoSourceIndexName).Type("doc").Id("1").BodyJson(&tweet1).Do(context.TODO())
+ if err != nil {
+ t.Fatal(err)
+ }
+ _, err = client.Index().Index(testNoSourceIndexName).Type("doc").Id("2").BodyJson(&tweet2).Do(context.TODO())
+ if err != nil {
+ t.Fatal(err)
+ }
+ // Flush
+ _, err = client.Flush().Index(testNoSourceIndexName).Do(context.TODO())
+ if err != nil {
+ t.Fatal(err)
+ }
+
+ return client
+}
+
var letters = []rune("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ")
func randomString(n int) string {
@@ -266,3 +427,19 @@ func randomString(n int) string {
}
return string(b)
}
+
+type lexicographically struct {
+ strings []string
+}
+
+func (l lexicographically) Len() int {
+ return len(l.strings)
+}
+
+func (l lexicographically) Less(i, j int) bool {
+ return l.strings[i] < l.strings[j]
+}
+
+func (l lexicographically) Swap(i, j int) {
+ l.strings[i], l.strings[j] = l.strings[j], l.strings[i]
+}