|
@@ -2,11 +2,10 @@ package engine
|
|
|
|
|
|
|
|
import (
|
|
import (
|
|
|
"fmt"
|
|
"fmt"
|
|
|
- //"github.com/cznic/kv"
|
|
|
|
|
"github.com/huichen/murmur"
|
|
"github.com/huichen/murmur"
|
|
|
"github.com/huichen/sego"
|
|
"github.com/huichen/sego"
|
|
|
"github.com/huichen/wukong/core"
|
|
"github.com/huichen/wukong/core"
|
|
|
- kv "github.com/huichen/wukong/storage"
|
|
|
|
|
|
|
+ "github.com/huichen/wukong/storage"
|
|
|
"github.com/huichen/wukong/types"
|
|
"github.com/huichen/wukong/types"
|
|
|
"github.com/huichen/wukong/utils"
|
|
"github.com/huichen/wukong/utils"
|
|
|
"log"
|
|
"log"
|
|
@@ -38,8 +37,7 @@ type Engine struct {
|
|
|
rankers []core.Ranker
|
|
rankers []core.Ranker
|
|
|
segmenter sego.Segmenter
|
|
segmenter sego.Segmenter
|
|
|
stopTokens StopTokens
|
|
stopTokens StopTokens
|
|
|
- //dbs []*kv.DB
|
|
|
|
|
- dbs []kv.Storage
|
|
|
|
|
|
|
+ dbs []storage.Storage
|
|
|
|
|
|
|
|
// 建立索引器使用的通信通道
|
|
// 建立索引器使用的通信通道
|
|
|
segmenterChannel chan segmenterRequest
|
|
segmenterChannel chan segmenterRequest
|
|
@@ -160,11 +158,10 @@ func (engine *Engine) Init(options types.EngineInitOptions) {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// 打开或者创建数据库
|
|
// 打开或者创建数据库
|
|
|
- //engine.dbs = make([]*kv.DB, engine.initOptions.PersistentStorageShards)
|
|
|
|
|
- engine.dbs = make([]kv.Storage, engine.initOptions.PersistentStorageShards)
|
|
|
|
|
|
|
+ engine.dbs = make([]storage.Storage, engine.initOptions.PersistentStorageShards)
|
|
|
for shard := 0; shard < engine.initOptions.PersistentStorageShards; shard++ {
|
|
for shard := 0; shard < engine.initOptions.PersistentStorageShards; shard++ {
|
|
|
dbPath := engine.initOptions.PersistentStorageFolder + "/" + PersistentStorageFilePrefix + "." + strconv.Itoa(shard)
|
|
dbPath := engine.initOptions.PersistentStorageFolder + "/" + PersistentStorageFilePrefix + "." + strconv.Itoa(shard)
|
|
|
- db, err := utils.OpenOrCreateKv(dbPath, &kv.Options{})
|
|
|
|
|
|
|
+ db, err := storage.OpenStorage(dbPath)
|
|
|
if db == nil || err != nil {
|
|
if db == nil || err != nil {
|
|
|
log.Fatal("无法打开数据库", dbPath, ": ", err)
|
|
log.Fatal("无法打开数据库", dbPath, ": ", err)
|
|
|
}
|
|
}
|
|
@@ -191,7 +188,7 @@ func (engine *Engine) Init(options types.EngineInitOptions) {
|
|
|
for shard := 0; shard < engine.initOptions.PersistentStorageShards; shard++ {
|
|
for shard := 0; shard < engine.initOptions.PersistentStorageShards; shard++ {
|
|
|
engine.dbs[shard].Close()
|
|
engine.dbs[shard].Close()
|
|
|
dbPath := engine.initOptions.PersistentStorageFolder + "/" + PersistentStorageFilePrefix + "." + strconv.Itoa(shard)
|
|
dbPath := engine.initOptions.PersistentStorageFolder + "/" + PersistentStorageFilePrefix + "." + strconv.Itoa(shard)
|
|
|
- db, err := utils.OpenOrCreateKv(dbPath, &kv.Options{})
|
|
|
|
|
|
|
+ db, err := storage.OpenStorage(dbPath)
|
|
|
if db == nil || err != nil {
|
|
if db == nil || err != nil {
|
|
|
log.Fatal("无法打开数据库", dbPath, ": ", err)
|
|
log.Fatal("无法打开数据库", dbPath, ": ", err)
|
|
|
}
|
|
}
|