aboutsummaryrefslogtreecommitdiff
path: root/setup/base
diff options
context:
space:
mode:
authorTill <2353100+S7evinK@users.noreply.github.com>2022-09-07 18:15:54 +0200
committerGitHub <noreply@github.com>2022-09-07 18:15:54 +0200
commitd5876abbe9f5484768f603ec91a567b8650e6e73 (patch)
treee8288bac7557a840ed636391ce5afbc7059dc993 /setup/base
parent31f4ae8997af7e939f505107341b86b2abd3fd9a (diff)
Fulltext implementation incl. config (#2480)
This adds the main component of the fulltext search. This PR doesn't do anything yet, besides creating an empty fulltextindex folder if enabled. Indexing events is done in a separate PR.
Diffstat (limited to 'setup/base')
-rw-r--r--setup/base/base.go12
1 files changed, 12 insertions, 0 deletions
diff --git a/setup/base/base.go b/setup/base/base.go
index 87f41576..3070bed5 100644
--- a/setup/base/base.go
+++ b/setup/base/base.go
@@ -38,6 +38,7 @@ import (
"golang.org/x/net/http2/h2c"
"github.com/matrix-org/dendrite/internal/caching"
+ "github.com/matrix-org/dendrite/internal/fulltext"
"github.com/matrix-org/dendrite/internal/httputil"
"github.com/matrix-org/dendrite/internal/pushgateway"
"github.com/matrix-org/dendrite/internal/sqlutil"
@@ -90,6 +91,7 @@ type BaseDendrite struct {
Database *sql.DB
DatabaseWriter sqlutil.Writer
EnableMetrics bool
+ Fulltext *fulltext.Search
startupLock sync.Mutex
}
@@ -150,6 +152,15 @@ func NewBaseDendrite(cfg *config.Dendrite, componentName string, options ...Base
logrus.WithError(err).Panicf("failed to start opentracing")
}
+ var fts *fulltext.Search
+ isSyncOrMonolith := componentName == "syncapi" || isMonolith
+ if cfg.SyncAPI.Fulltext.Enabled && isSyncOrMonolith {
+ fts, err = fulltext.New(cfg.SyncAPI.Fulltext)
+ if err != nil {
+ logrus.WithError(err).Panicf("failed to create full text")
+ }
+ }
+
if cfg.Global.Sentry.Enabled {
logrus.Info("Setting up Sentry for debugging...")
err = sentry.Init(sentry.ClientOptions{
@@ -247,6 +258,7 @@ func NewBaseDendrite(cfg *config.Dendrite, componentName string, options ...Base
Database: db, // set if monolith with global connection pool only
DatabaseWriter: writer, // set if monolith with global connection pool only
EnableMetrics: enableMetrics,
+ Fulltext: fts,
}
}