0
0
Fork 0

adds examples for most query functions

This commit is contained in:
Sacheendra Talluri 2015-01-03 22:35:45 +05:30
parent 2de21cdf82
commit 1653fdec22
1 changed files with 229 additions and 15 deletions

View File

@ -13,6 +13,7 @@ import (
"fmt"
"os"
"testing"
"time"
)
var mapping *IndexMapping
@ -38,14 +39,20 @@ func ExampleNew() {
}
func ExampleIndex_indexing() {
data := struct{ Name string }{Name: "named one"}
data2 := struct{ Name string }{Name: "great nameless one"}
data := struct {
Name string
Created time.Time
}{Name: "named one", Created: time.Now()}
data2 := struct {
Name string
Created time.Time
}{Name: "great nameless one", Created: time.Now()}
// index some data
example_index.Index("document id 1", data)
example_index.Index("document id 2", data2)
// 1 document has been indexed
// 2 documents have been indexed
count, _ := example_index.DocCount()
fmt.Println(count)
// Output:
@ -55,8 +62,8 @@ func ExampleIndex_indexing() {
func ExampleNewMatchQuery() {
// finds documents with fields fully matching the given query text
query := NewMatchQuery("named one")
search := NewSearchRequest(query)
searchResults, _ := example_index.Search(search)
searchRequest := NewSearchRequest(query)
searchResults, _ := example_index.Search(searchRequest)
fmt.Println(searchResults.Hits[0].ID)
// Output:
// document id 1
@ -65,8 +72,8 @@ func ExampleNewMatchQuery() {
func ExampleNewMatchAllQuery() {
// finds all documents in the index
query := NewMatchAllQuery()
search := NewSearchRequest(query)
searchResults, _ := example_index.Search(search)
searchRequest := NewSearchRequest(query)
searchResults, _ := example_index.Search(searchRequest)
fmt.Println(len(searchResults.Hits))
// Output:
// 2
@ -75,8 +82,8 @@ func ExampleNewMatchAllQuery() {
func ExampleNewMatchNoneQuery() {
// matches no documents in the index
query := NewMatchNoneQuery()
search := NewSearchRequest(query)
searchResults, _ := example_index.Search(search)
searchRequest := NewSearchRequest(query)
searchResults, _ := example_index.Search(searchRequest)
fmt.Println(len(searchResults.Hits))
// Output:
// 0
@ -85,8 +92,8 @@ func ExampleNewMatchNoneQuery() {
func ExampleNewMatchPhraseQuery() {
// finds all documents with the given phrase in the index
query := NewMatchPhraseQuery("nameless one")
search := NewSearchRequest(query)
searchResults, _ := example_index.Search(search)
searchRequest := NewSearchRequest(query)
searchResults, _ := example_index.Search(searchRequest)
fmt.Println(searchResults.Hits[0].ID)
// Output:
// document id 2
@ -95,16 +102,223 @@ func ExampleNewMatchPhraseQuery() {
func ExampleNewNumericRangeQuery() {
value1 := float64(11)
value2 := float64(100)
data := struct{ priority float64 }{priority: float64(15)}
data2 := struct{ priority float64 }{priority: float64(10)}
data := struct{ Priority float64 }{Priority: float64(15)}
data2 := struct{ Priority float64 }{Priority: float64(10)}
example_index.Index("document id 3", data)
example_index.Index("document id 4", data2)
query := NewNumericRangeQuery(&value1, &value2)
search := NewSearchRequest(query)
searchResults, _ := example_index.Search(search)
searchRequest := NewSearchRequest(query)
searchResults, _ := example_index.Search(searchRequest)
fmt.Println(searchResults.Hits[0].ID)
// Output:
// document id 3
}
func ExampleNewNumericRangeInclusiveQuery() {
value1 := float64(10)
value2 := float64(100)
v1incl := false
v2incl := false
query := NewNumericRangeInclusiveQuery(&value1, &value2, &v1incl, &v2incl)
searchRequest := NewSearchRequest(query)
searchResults, _ := example_index.Search(searchRequest)
fmt.Println(searchResults.Hits[0].ID)
// Output:
// document id 3
}
func ExampleNewPhraseQuery() {
// finds all documents with the given phrases in the given field in the index
query := NewPhraseQuery([]string{"nameless", "one"}, "Name")
searchRequest := NewSearchRequest(query)
searchResults, _ := example_index.Search(searchRequest)
fmt.Println(searchResults.Hits[0].ID)
// Output:
// document id 2
}
func ExampleNewPrefixQuery() {
// finds all documents with terms having the given prefix in the index
query := NewPrefixQuery("name")
searchRequest := NewSearchRequest(query)
searchResults, _ := example_index.Search(searchRequest)
fmt.Println(len(searchResults.Hits))
// Output:
// 2
}
func ExampleNewQueryStringQuery() {
query := NewQueryStringQuery("+one -great")
searchRequest := NewSearchRequest(query)
searchResults, _ := example_index.Search(searchRequest)
fmt.Println(searchResults.Hits[0].ID)
// Output:
// document id 1
}
func ExampleNewTermQuery() {
query := NewTermQuery("great")
searchRequest := NewSearchRequest(query)
searchResults, _ := example_index.Search(searchRequest)
fmt.Println(searchResults.Hits[0].ID)
// Output:
// document id 2
}
func ExampleNewFacetRequest() {
facet := NewFacetRequest("Name", 1)
query := NewMatchAllQuery()
searchRequest := NewSearchRequest(query)
searchRequest.AddFacet("facet name", facet)
searchResults, _ := example_index.Search(searchRequest)
// total number of terms
fmt.Println(searchResults.Facets["facet name"].Total)
// numer of docs with no value for this field
fmt.Println(searchResults.Facets["facet name"].Missing)
// term with highest occurences in field name
fmt.Println(searchResults.Facets["facet name"].Terms[0].Term)
// Output:
// 5
// 2
// one
}
func ExampleFacetRequest_AddDateTimeRange() {
facet := NewFacetRequest("Created", 1)
facet.AddDateTimeRange("range name", time.Unix(0, 0), time.Now())
query := NewMatchAllQuery()
searchRequest := NewSearchRequest(query)
searchRequest.AddFacet("facet name", facet)
searchResults, _ := example_index.Search(searchRequest)
// dates in field Created since starting of unix time till now
fmt.Println(searchResults.Facets["facet name"].DateRanges[0].Count)
// Output:
// 2
}
func ExampleFacetRequest_AddNumericRange() {
value1 := float64(11)
facet := NewFacetRequest("Priority", 1)
facet.AddNumericRange("range name", &value1, nil)
query := NewMatchAllQuery()
searchRequest := NewSearchRequest(query)
searchRequest.AddFacet("facet name", facet)
searchResults, _ := example_index.Search(searchRequest)
// number documents with field Priority in the given range
fmt.Println(searchResults.Facets["facet name"].NumericRanges[0].Count)
// Output:
// 1
}
func ExampleNewHighlight() {
query := NewMatchQuery("nameless")
searchRequest := NewSearchRequest(query)
searchRequest.Highlight = NewHighlight()
searchResults, _ := example_index.Search(searchRequest)
fmt.Println(searchResults.Hits[0].Fragments["Name"][0])
// Output:
// great <span class="highlight">nameless</span> one
}
func ExampleNewHighlightWithStyle() {
query := NewMatchQuery("nameless")
searchRequest := NewSearchRequest(query)
searchRequest.Highlight = NewHighlightWithStyle("ansi")
searchResults, _ := example_index.Search(searchRequest)
fmt.Println(searchResults.Hits[0].Fragments["Name"][0])
// Output:
// great nameless one
}
func ExampleSearchRequest_AddFacet() {
facet := NewFacetRequest("Name", 1)
query := NewMatchAllQuery()
searchRequest := NewSearchRequest(query)
searchRequest.AddFacet("facet name", facet)
searchResults, _ := example_index.Search(searchRequest)
// total number of terms
fmt.Println(searchResults.Facets["facet name"].Total)
// numer of docs with no value for this field
fmt.Println(searchResults.Facets["facet name"].Missing)
// term with highest occurences in field name
fmt.Println(searchResults.Facets["facet name"].Terms[0].Term)
// Output:
// 5
// 2
// one
}
func ExampleNewSearchRequest() {
// finds documents with fields fully matching the given query text
query := NewMatchQuery("named one")
searchRequest := NewSearchRequest(query)
searchResults, _ := example_index.Search(searchRequest)
fmt.Println(searchResults.Hits[0].ID)
// Output:
// document id 1
}
func ExampleNewBooleanQuery() {
must := make([]Query, 1)
mustNot := make([]Query, 1)
must[0] = NewMatchQuery("one")
mustNot[0] = NewMatchQuery("great")
query := NewBooleanQuery(must, nil, mustNot)
searchRequest := NewSearchRequest(query)
searchResults, _ := example_index.Search(searchRequest)
fmt.Println(searchResults.Hits[0].ID)
// Output:
// document id 1
}
func ExampleNewBooleanQueryMinShould() {
should := make([]Query, 2)
should[0] = NewMatchQuery("great")
should[1] = NewMatchQuery("one")
query := NewBooleanQueryMinShould(nil, should, nil, float64(2))
searchRequest := NewSearchRequest(query)
searchResults, _ := example_index.Search(searchRequest)
fmt.Println(searchResults.Hits[0].ID)
// Output:
// document id 2
}
func ExampleNewConjunctionQuery() {
conjuncts := make([]Query, 2)
conjuncts[0] = NewMatchQuery("great")
conjuncts[1] = NewMatchQuery("one")
query := NewConjunctionQuery(conjuncts)
searchRequest := NewSearchRequest(query)
searchResults, _ := example_index.Search(searchRequest)
fmt.Println(searchResults.Hits[0].ID)
// Output:
// document id 2
}
func ExampleNewDisjunctionQuery() {
disjuncts := make([]Query, 2)
disjuncts[0] = NewMatchQuery("great")
disjuncts[1] = NewMatchQuery("named")
query := NewDisjunctionQuery(disjuncts)
searchRequest := NewSearchRequest(query)
searchResults, _ := example_index.Search(searchRequest)
fmt.Println(len(searchResults.Hits))
// Output:
// 2
}
func ExampleNewDisjunctionQueryMin() {
disjuncts := make([]Query, 2)
disjuncts[0] = NewMatchQuery("great")
disjuncts[1] = NewMatchQuery("named")
query := NewDisjunctionQueryMin(disjuncts, float64(2))
searchRequest := NewSearchRequest(query)
searchResults, _ := example_index.Search(searchRequest)
fmt.Println(len(searchResults.Hits))
// Output:
// 0
}