Splits bleve.Index and database in two

This commit is contained in:
2016-01-21 19:19:04 +01:00
parent b044fa17ab
commit ef458eaaea
7 changed files with 132 additions and 235 deletions

17
main.go
View File

@@ -13,6 +13,7 @@ import (
"github.com/jessevdk/go-flags"
"github.com/tylerb/graceful"
"github.com/blevesearch/bleve"
bleveHttp "github.com/blevesearch/bleve/http"
)
@@ -49,11 +50,11 @@ func readAlbums(csvPath string, albums chan *Album, errors chan error) {
}
}
func indexAlbums(i Indexer, albums chan *Album, errors chan error) {
func indexAlbums(i bleve.Index, albums chan *Album, errors chan error) {
iAlbum := 0
start := time.Now()
for a := range albums {
err := i.Index(a)
err := i.Index(a.IDString(), a)
if err != nil {
errors <- err
}
@@ -65,6 +66,14 @@ func indexAlbums(i Indexer, albums chan *Album, errors chan error) {
}
}
func buildOrOpen(basepath string) (bleve.Index, error) {
i, err := bleve.Open(basepath)
if err == bleve.ErrorIndexPathDoesNotExist {
return bleve.New(basepath, buildAlbumMapping())
}
return i, err
}
// Execute executes the job
func Execute() error {
var opts Options
@@ -80,7 +89,7 @@ func Execute() error {
return err
}
i, err := NewBleveIndexer("satbd.bar.satellite")
i, err := buildOrOpen("satbd.bar.satellite")
if err != nil {
return err
}
@@ -98,7 +107,7 @@ func Execute() error {
router := mux.NewRouter()
bleveHttp.RegisterIndexName("album", i.(*bleveIndexer).bl)
bleveHttp.RegisterIndexName("album", i)
searchHandler := bleveHttp.NewSearchHandler("album")
router.Handle("/api/search", searchHandler).Methods("POST")