github.com/balzaczyy/golucene@v0.0.0-20151210033525-d0be9ee89713/gl.go (about) 1 package main 2 3 import ( 4 "fmt" 5 std "github.com/balzaczyy/golucene/analysis/standard" 6 _ "github.com/balzaczyy/golucene/core/codec/lucene410" 7 "github.com/balzaczyy/golucene/core/document" 8 "github.com/balzaczyy/golucene/core/index" 9 "github.com/balzaczyy/golucene/core/search" 10 "github.com/balzaczyy/golucene/core/store" 11 "github.com/balzaczyy/golucene/core/util" 12 "os" 13 ) 14 15 func main() { 16 util.SetDefaultInfoStream(util.NewPrintStreamInfoStream(os.Stdout)) 17 index.DefaultSimilarity = func() index.Similarity { 18 return search.NewDefaultSimilarity() 19 } 20 21 directory, _ := store.OpenFSDirectory("test_index") 22 analyzer := std.NewStandardAnalyzer() 23 conf := index.NewIndexWriterConfig(util.VERSION_LATEST, analyzer) 24 writer, _ := index.NewIndexWriter(directory, conf) 25 26 d := document.NewDocument() 27 d.Add(document.NewTextFieldFromString("foo", "bar", document.STORE_YES)) 28 writer.AddDocument(d.Fields()) 29 writer.Close() // ensure index is written 30 31 reader, _ := index.OpenDirectoryReader(directory) 32 searcher := search.NewIndexSearcher(reader) 33 34 q := search.NewTermQuery(index.NewTerm("foo", "bar")) 35 res, _ := searcher.Search(q, nil, 1000) 36 fmt.Printf("Found %v hit(s).\n", res.TotalHits) 37 for _, hit := range res.ScoreDocs { 38 fmt.Printf("Doc %v score: %v\n", hit.Doc, hit.Score) 39 doc, _ := reader.Document(hit.Doc) 40 fmt.Printf("foo -> %v\n", doc.Get("foo")) 41 } 42 43 }