Splits bleve.Index and database in two
This commit is contained in:
17
main.go
17
main.go
@@ -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")
|
||||
|
||||
Reference in New Issue
Block a user