1// Copyright 2012-present Oliver Eilhard. All rights reserved. 2// Use of this source code is governed by a MIT-license. 3// See http://olivere.mit-license.org/license.txt for details. 4 5package elastic 6 7import ( 8 "context" 9 "testing" 10) 11 12func TestExplain(t *testing.T) { 13 client := setupTestClientAndCreateIndex(t) 14 15 tweet1 := tweet{User: "olivere", Message: "Welcome to Golang and Elasticsearch."} 16 17 // Add a document 18 indexResult, err := client.Index(). 19 Index(testIndexName). 20 Type("tweet"). 21 Id("1"). 22 BodyJson(&tweet1). 23 Refresh("true"). 24 Do(context.TODO()) 25 if err != nil { 26 t.Fatal(err) 27 } 28 if indexResult == nil { 29 t.Errorf("expected result to be != nil; got: %v", indexResult) 30 } 31 32 // Explain 33 query := NewTermQuery("user", "olivere") 34 expl, err := client.Explain(testIndexName, "tweet", "1").Query(query).Do(context.TODO()) 35 if err != nil { 36 t.Fatal(err) 37 } 38 if expl == nil { 39 t.Fatal("expected to return an explanation") 40 } 41 if !expl.Matched { 42 t.Errorf("expected matched to be %v; got: %v", true, expl.Matched) 43 } 44} 45