[MM-20979] Add first implementation of the Bleve search engine (#14562)
* [MM-20979] Add first implementation of the Bleve search engine * Fix i18n * Migrate searchengine utils tests * Fix linter * Don't add allTermsQ if both termQueries and notTermQueries are empty * Fix test that should work if user is system admin * Modify naming according to review comments * Abstract getIndexDir function * Extracting bleve engine name as a constant * Merge both Indexer interfaces into one * Add worker stopped message * Allow worker to be started/stopped with config change * Use constants for index names * Modify test order * Fix linter * Trying to unlock the CI
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
8d0343d2eb
Коммит
0154b8059b
@@ -38,6 +38,7 @@ import (
|
||||
"github.com/mattermost/mattermost-server/v5/services/httpservice"
|
||||
"github.com/mattermost/mattermost-server/v5/services/imageproxy"
|
||||
"github.com/mattermost/mattermost-server/v5/services/searchengine"
|
||||
"github.com/mattermost/mattermost-server/v5/services/searchengine/bleveengine"
|
||||
"github.com/mattermost/mattermost-server/v5/services/timezones"
|
||||
"github.com/mattermost/mattermost-server/v5/services/tracing"
|
||||
"github.com/mattermost/mattermost-server/v5/store"
|
||||
@@ -225,7 +226,13 @@ func NewServer(options ...Option) (*Server, error) {
|
||||
return nil, errors.Wrapf(err, "unable to load Mattermost translation files")
|
||||
}
|
||||
|
||||
s.SearchEngine = searchengine.NewBroker(s.Config(), s.Jobs)
|
||||
searchEngine := searchengine.NewBroker(s.Config(), s.Jobs)
|
||||
bleveEngine := bleveengine.NewBleveEngine(s.Config(), s.Jobs)
|
||||
if err := bleveEngine.Start(); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
searchEngine.RegisterBleveEngine(bleveEngine)
|
||||
s.SearchEngine = searchEngine
|
||||
|
||||
// at the moment we only have this implementation
|
||||
// in the future the cache provider will be built based on the loaded config
|
||||
@@ -237,8 +244,7 @@ func NewServer(options ...Option) (*Server, error) {
|
||||
s.seenPendingPostIdsCache = s.CacheProvider.NewCache(PENDING_POST_IDS_CACHE_SIZE)
|
||||
s.statusCache = s.CacheProvider.NewCache(model.STATUS_CACHE_SIZE)
|
||||
|
||||
err := s.RunOldAppInitialization()
|
||||
if err != nil {
|
||||
if err := s.RunOldAppInitialization(); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
@@ -985,6 +991,9 @@ func (s *Server) stopSearchEngine() {
|
||||
if s.SearchEngine != nil && s.SearchEngine.ElasticsearchEngine != nil && s.SearchEngine.ElasticsearchEngine.IsActive() {
|
||||
s.SearchEngine.ElasticsearchEngine.Stop()
|
||||
}
|
||||
if s.SearchEngine != nil && s.SearchEngine.BleveEngine != nil && s.SearchEngine.BleveEngine.IsActive() {
|
||||
s.SearchEngine.BleveEngine.Stop()
|
||||
}
|
||||
}
|
||||
|
||||
func (s *Server) initDiagnostics(endpoint string) {
|
||||
|
||||
Ссылка в новой задаче
Block a user