Adds elasticsearch to the user and channel autocompletion functions (#10354)
* Adds elasticsearch to the user and channel autocompletion functions * Implement channel store GetChannelsByIds test * Style changes and govet fixes * Add gofmt fixes * Extract default channel search limit to a const * Add StringSliceDiff function to the utils package * Honor USER_SEARCH_MAX_LIMIT on the user autocomplete api handler * Change the elasticsearch development image
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
5dae08761c
Коммит
44887a0272
@@ -8,6 +8,8 @@ import (
|
||||
"io"
|
||||
)
|
||||
|
||||
const CHANNEL_SEARCH_DEFAULT_LIMIT = 50
|
||||
|
||||
type ChannelSearch struct {
|
||||
Term string `json:"term"`
|
||||
}
|
||||
|
||||
@@ -155,6 +155,10 @@ const (
|
||||
ELASTICSEARCH_SETTINGS_DEFAULT_PASSWORD = "changeme"
|
||||
ELASTICSEARCH_SETTINGS_DEFAULT_POST_INDEX_REPLICAS = 1
|
||||
ELASTICSEARCH_SETTINGS_DEFAULT_POST_INDEX_SHARDS = 1
|
||||
ELASTICSEARCH_SETTINGS_DEFAULT_CHANNEL_INDEX_REPLICAS = 1
|
||||
ELASTICSEARCH_SETTINGS_DEFAULT_CHANNEL_INDEX_SHARDS = 1
|
||||
ELASTICSEARCH_SETTINGS_DEFAULT_USER_INDEX_REPLICAS = 1
|
||||
ELASTICSEARCH_SETTINGS_DEFAULT_USER_INDEX_SHARDS = 1
|
||||
ELASTICSEARCH_SETTINGS_DEFAULT_AGGREGATE_POSTS_AFTER_DAYS = 365
|
||||
ELASTICSEARCH_SETTINGS_DEFAULT_POSTS_AGGREGATOR_JOB_START_TIME = "03:00"
|
||||
ELASTICSEARCH_SETTINGS_DEFAULT_INDEX_PREFIX = ""
|
||||
@@ -1922,9 +1926,14 @@ type ElasticsearchSettings struct {
|
||||
Password *string
|
||||
EnableIndexing *bool
|
||||
EnableSearching *bool
|
||||
EnableAutocomplete *bool
|
||||
Sniff *bool
|
||||
PostIndexReplicas *int
|
||||
PostIndexShards *int
|
||||
ChannelIndexReplicas *int
|
||||
ChannelIndexShards *int
|
||||
UserIndexReplicas *int
|
||||
UserIndexShards *int
|
||||
AggregatePostsAfterDays *int
|
||||
PostsAggregatorJobStartTime *string
|
||||
IndexPrefix *string
|
||||
@@ -1954,6 +1963,10 @@ func (s *ElasticsearchSettings) SetDefaults() {
|
||||
s.EnableSearching = NewBool(false)
|
||||
}
|
||||
|
||||
if s.EnableAutocomplete == nil {
|
||||
s.EnableAutocomplete = NewBool(false)
|
||||
}
|
||||
|
||||
if s.Sniff == nil {
|
||||
s.Sniff = NewBool(true)
|
||||
}
|
||||
@@ -1966,6 +1979,22 @@ func (s *ElasticsearchSettings) SetDefaults() {
|
||||
s.PostIndexShards = NewInt(ELASTICSEARCH_SETTINGS_DEFAULT_POST_INDEX_SHARDS)
|
||||
}
|
||||
|
||||
if s.ChannelIndexReplicas == nil {
|
||||
s.ChannelIndexReplicas = NewInt(ELASTICSEARCH_SETTINGS_DEFAULT_CHANNEL_INDEX_REPLICAS)
|
||||
}
|
||||
|
||||
if s.ChannelIndexShards == nil {
|
||||
s.ChannelIndexShards = NewInt(ELASTICSEARCH_SETTINGS_DEFAULT_CHANNEL_INDEX_SHARDS)
|
||||
}
|
||||
|
||||
if s.UserIndexReplicas == nil {
|
||||
s.UserIndexReplicas = NewInt(ELASTICSEARCH_SETTINGS_DEFAULT_USER_INDEX_REPLICAS)
|
||||
}
|
||||
|
||||
if s.UserIndexShards == nil {
|
||||
s.UserIndexShards = NewInt(ELASTICSEARCH_SETTINGS_DEFAULT_USER_INDEX_SHARDS)
|
||||
}
|
||||
|
||||
if s.AggregatePostsAfterDays == nil {
|
||||
s.AggregatePostsAfterDays = NewInt(ELASTICSEARCH_SETTINGS_DEFAULT_AGGREGATE_POSTS_AFTER_DAYS)
|
||||
}
|
||||
@@ -2689,6 +2718,10 @@ func (ess *ElasticsearchSettings) isValid() *AppError {
|
||||
return NewAppError("Config.IsValid", "model.config.is_valid.elastic_search.enable_searching.app_error", nil, "", http.StatusBadRequest)
|
||||
}
|
||||
|
||||
if *ess.EnableAutocomplete && !*ess.EnableIndexing {
|
||||
return NewAppError("Config.IsValid", "model.config.is_valid.elastic_search.enable_autocomplete.app_error", nil, "", http.StatusBadRequest)
|
||||
}
|
||||
|
||||
if *ess.AggregatePostsAfterDays < 1 {
|
||||
return NewAppError("Config.IsValid", "model.config.is_valid.elastic_search.aggregate_posts_after_days.app_error", nil, "", http.StatusBadRequest)
|
||||
}
|
||||
|
||||
Ссылка в новой задаче
Block a user