diff --git a/database.go b/database.go index 3bcb7c6ae7de8ede2d6a0bb2df5a27c1365c7f66..892de2eb9520d6027f70d1771048e00773638dfd 100644 --- a/database.go +++ b/database.go @@ -20,6 +20,7 @@ import ( _ "git.autistici.org/ale/liber/Godeps/_workspace/src/github.com/blevesearch/bleve/analysis/analyzers/simple_analyzer" _ "git.autistici.org/ale/liber/Godeps/_workspace/src/github.com/blevesearch/bleve/analysis/analyzers/standard_analyzer" _ "git.autistici.org/ale/liber/Godeps/_workspace/src/github.com/blevesearch/bleve/analysis/token_filters/edge_ngram_filter" + blevegoleveldb "git.autistici.org/ale/liber/Godeps/_workspace/src/github.com/blevesearch/bleve/index/store/goleveldb" "git.autistici.org/ale/liber/Godeps/_workspace/src/github.com/syndtr/goleveldb/leveldb" ldbfilter "git.autistici.org/ale/liber/Godeps/_workspace/src/github.com/syndtr/goleveldb/leveldb/filter" @@ -210,10 +211,10 @@ func NewDb(path string) (*Database, error) { } func (db *Database) setupLevelDb(path string) error { - // Use 256MB of cache and a small Bloom filter. + // Use 128MB of cache and a small Bloom filter. opts := &ldbopt.Options{ Filter: ldbfilter.NewBloomFilter(10), - BlockCacheCapacity: 2 << 28, + BlockCacheCapacity: 2 << 27, } ldb, err := leveldb.OpenFile(path, opts) @@ -229,7 +230,13 @@ func (db *Database) setupIndex(path string) error { if _, serr := os.Stat(path); serr == nil { db.index, err = bleve.Open(path) } else { - db.index, err = bleve.New(path, defaultIndexMapping()) + // Create a new Bleve index, backed by goleveldb. + db.index, err = bleve.NewUsing(path, defaultIndexMapping(), bleve.Config.DefaultIndexType, blevegoleveldb.Name, map[string]interface{}{ + "create_if_missing": true, + "write_buffer_size": 2 << 25, + "lru_cache_capacity": 2 << 27, + "bloom_filter_bits_per_key": 10, + }) } if err != nil { return err