diff --git a/extensions/search/pkg/config/config.go b/extensions/search/pkg/config/config.go index 788ceec85..ae90144ec 100644 --- a/extensions/search/pkg/config/config.go +++ b/extensions/search/pkg/config/config.go @@ -18,6 +18,7 @@ type Config struct { GRPC GRPC `ocisConfig:"grpc"` + Datapath string `yaml:"data_path" env:"SEARCH_DATA_PATH"` Reva Reva `ocisConfig:"reva"` TokenManager TokenManager `ocisConfig:"token_manager"` Events Events `yaml:"events"` diff --git a/extensions/search/pkg/config/defaults/defaultconfig.go b/extensions/search/pkg/config/defaults/defaultconfig.go index 9f3368b0b..8d18bf9e2 100644 --- a/extensions/search/pkg/config/defaults/defaultconfig.go +++ b/extensions/search/pkg/config/defaults/defaultconfig.go @@ -1,7 +1,10 @@ package defaults import ( + "path" + "github.com/owncloud/ocis/extensions/search/pkg/config" + "github.com/owncloud/ocis/ocis-pkg/config/defaults" ) func DefaultConfig() *config.Config { @@ -17,6 +20,7 @@ func DefaultConfig() *config.Config { Service: config.Service{ Name: "search", }, + Datapath: path.Join(defaults.BaseDataPath(), "search"), Reva: config.Reva{ Address: "127.0.0.1:9142", }, diff --git a/extensions/search/pkg/service/v0/service.go b/extensions/search/pkg/service/v0/service.go index 4bc989ad9..a214fa1bd 100644 --- a/extensions/search/pkg/service/v0/service.go +++ b/extensions/search/pkg/service/v0/service.go @@ -3,6 +3,7 @@ package service import ( "context" "errors" + "path/filepath" "github.com/blevesearch/bleve/v2" revactx "github.com/cs3org/reva/v2/pkg/ctx" @@ -42,9 +43,13 @@ func NewHandler(opts ...Option) (searchsvc.SearchProviderHandler, error) { return nil, err } - bleveIndex, err := bleve.NewMemOnly(index.BuildMapping()) + indexDir := filepath.Join(cfg.Datapath, "index.bleve") + bleveIndex, err := bleve.Open(indexDir) if err != nil { - return nil, err + bleveIndex, err = bleve.New(indexDir, index.BuildMapping()) + if err != nil { + return nil, err + } } index, err := index.New(bleveIndex) if err != nil {