diff options
author | George Goldberg <george@gberg.me> | 2017-05-18 16:26:52 +0100 |
---|---|---|
committer | Harrison Healey <harrisonmhealey@gmail.com> | 2017-05-18 11:26:52 -0400 |
commit | 0db5e3922fd5045b3f7f518ad65e42138f0325c4 (patch) | |
tree | e225a7191de7915a3da3716601ddb415c4f26979 /model/config.go | |
parent | 2bbedd9def2a782f370fb5280994ea0ecbf8a7c7 (diff) | |
download | chat-0db5e3922fd5045b3f7f518ad65e42138f0325c4.tar.gz chat-0db5e3922fd5045b3f7f518ad65e42138f0325c4.tar.bz2 chat-0db5e3922fd5045b3f7f518ad65e42138f0325c4.zip |
PLT-6472: Basic Elastic Search implementation. (#6382)
* PLT-6472: Basic Elastic Search implementation.
This currently supports indexing of posts at create/update/delete time.
It does not support batch indexing or reindexing, and does not support
any entities other than posts yet. The purpose is to more-or-less
replicate the existing full-text search feature but with some of the
immediate benefits of using elastic search.
* Alter settings for AWS compatability.
* Remove unneeded i18n strings.
Diffstat (limited to 'model/config.go')
-rw-r--r-- | model/config.go | 98 |
1 files changed, 76 insertions, 22 deletions
diff --git a/model/config.go b/model/config.go index 907620124..14f092373 100644 --- a/model/config.go +++ b/model/config.go @@ -401,29 +401,39 @@ type WebrtcSettings struct { TurnSharedKey *string } +type ElasticSearchSettings struct { + ConnectionUrl *string + Username *string + Password *string + EnableIndexing *bool + EnableSearching *bool + Sniff *bool +} + type Config struct { - ServiceSettings ServiceSettings - TeamSettings TeamSettings - SqlSettings SqlSettings - LogSettings LogSettings - PasswordSettings PasswordSettings - FileSettings FileSettings - EmailSettings EmailSettings - RateLimitSettings RateLimitSettings - PrivacySettings PrivacySettings - SupportSettings SupportSettings - GitLabSettings SSOSettings - GoogleSettings SSOSettings - Office365Settings SSOSettings - LdapSettings LdapSettings - ComplianceSettings ComplianceSettings - LocalizationSettings LocalizationSettings - SamlSettings SamlSettings - NativeAppSettings NativeAppSettings - ClusterSettings ClusterSettings - MetricsSettings MetricsSettings - AnalyticsSettings AnalyticsSettings - WebrtcSettings WebrtcSettings + ServiceSettings ServiceSettings + TeamSettings TeamSettings + SqlSettings SqlSettings + LogSettings LogSettings + PasswordSettings PasswordSettings + FileSettings FileSettings + EmailSettings EmailSettings + RateLimitSettings RateLimitSettings + PrivacySettings PrivacySettings + SupportSettings SupportSettings + GitLabSettings SSOSettings + GoogleSettings SSOSettings + Office365Settings SSOSettings + LdapSettings LdapSettings + ComplianceSettings ComplianceSettings + LocalizationSettings LocalizationSettings + SamlSettings SamlSettings + NativeAppSettings NativeAppSettings + ClusterSettings ClusterSettings + MetricsSettings MetricsSettings + AnalyticsSettings AnalyticsSettings + WebrtcSettings WebrtcSettings + ElasticSearchSettings ElasticSearchSettings } func (o *Config) ToJson() string { @@ -1217,6 +1227,36 @@ func (o *Config) SetDefaults() { *o.ServiceSettings.ClusterLogTimeoutMilliseconds = 2000 } + if o.ElasticSearchSettings.ConnectionUrl == nil { + o.ElasticSearchSettings.ConnectionUrl = new(string) + *o.ElasticSearchSettings.ConnectionUrl = "" + } + + if o.ElasticSearchSettings.Username == nil { + o.ElasticSearchSettings.Username = new(string) + *o.ElasticSearchSettings.Username = "" + } + + if o.ElasticSearchSettings.Password == nil { + o.ElasticSearchSettings.Password = new(string) + *o.ElasticSearchSettings.Password = "" + } + + if o.ElasticSearchSettings.EnableIndexing == nil { + o.ElasticSearchSettings.EnableIndexing = new(bool) + *o.ElasticSearchSettings.EnableIndexing = false + } + + if o.ElasticSearchSettings.EnableSearching == nil { + o.ElasticSearchSettings.EnableSearching = new(bool) + *o.ElasticSearchSettings.EnableSearching = false + } + + if o.ElasticSearchSettings.Sniff == nil { + o.ElasticSearchSettings.Sniff = new(bool) + *o.ElasticSearchSettings.Sniff = true + } + o.defaultWebrtcSettings() } @@ -1448,6 +1488,16 @@ func (o *Config) IsValid() *AppError { return NewLocAppError("Config.IsValid", "model.config.is_valid.time_between_user_typing.app_error", nil, "") } + if *o.ElasticSearchSettings.EnableIndexing { + if len(*o.ElasticSearchSettings.ConnectionUrl) == 0 { + return NewLocAppError("Config.IsValid", "model.config.is_valid.elastic_search.connection_url.app_error", nil, "") + } + } + + if *o.ElasticSearchSettings.EnableSearching && !*o.ElasticSearchSettings.EnableIndexing { + return NewLocAppError("Config.IsValid", "model.config.is_valid.elastic_search.enable_searching.app_error", nil, "") + } + return nil } @@ -1488,6 +1538,10 @@ func (o *Config) Sanitize() { for i := range o.SqlSettings.DataSourceSearchReplicas { o.SqlSettings.DataSourceSearchReplicas[i] = FAKE_SETTING } + + *o.ElasticSearchSettings.ConnectionUrl = FAKE_SETTING + *o.ElasticSearchSettings.Username = FAKE_SETTING + *o.ElasticSearchSettings.Password = FAKE_SETTING } func (o *Config) defaultWebrtcSettings() { |