[MM-26397] Take query size and order into account for Bleve (#14882)

* [MM-26397] Take query size and order into account for Bleve

* Add a test to check post search pagination

* Add tests for checking limit when searching users

* Make pagination an independent test to discriminate DB engines
Этот коммит содержится в:
Miguel de la Cruz
2020-06-30 15:38:58 +02:00
коммит произвёл GitHub
родитель 10af90fa27
Коммит df943fbf91
3 изменённых файлов: 68 добавлений и 4 удалений

Просмотреть файл

@@ -196,7 +196,8 @@ func (b *BleveEngine) SearchPosts(channels *model.ChannelList, searchParams []*m
query.AddMustNot(notFilters...)
}
search := bleve.NewSearchRequest(query)
search := bleve.NewSearchRequestOptions(query, perPage, page*perPage, false)
search.SortBy([]string{"-CreateAt"})
results, err := b.PostIndex.Search(search)
if err != nil {
return nil, nil, model.NewAppError("Bleveengine.SearchPosts", "bleveengine.search_posts.error", nil, err.Error(), http.StatusInternalServerError)
@@ -311,6 +312,7 @@ func (b *BleveEngine) SearchChannels(teamId, term string) ([]string, *model.AppE
}
query := bleve.NewSearchRequest(bleve.NewConjunctionQuery(queries...))
query.Size = model.CHANNEL_SEARCH_DEFAULT_LIMIT
results, err := b.ChannelIndex.Search(query)
if err != nil {
return nil, model.NewAppError("Bleveengine.SearchChannels", "bleveengine.search_channels.error", nil, err.Error(), http.StatusInternalServerError)
@@ -368,7 +370,9 @@ func (b *BleveEngine) SearchUsersInChannel(teamId, channelId string, restrictedT
query := bleve.NewConjunctionQuery(queries...)
uchan, err := b.UserIndex.Search(bleve.NewSearchRequest(query))
uchanSearch := bleve.NewSearchRequest(query)
uchanSearch.Size = options.Limit
uchan, err := b.UserIndex.Search(uchanSearch)
if err != nil {
return nil, nil, model.NewAppError("Bleveengine.SearchUsersInChannel", "bleveengine.search_users_in_channel.uchan.error", nil, err.Error(), http.StatusInternalServerError)
}
@@ -403,7 +407,9 @@ func (b *BleveEngine) SearchUsersInChannel(teamId, channelId string, restrictedT
boolQ.AddMust(restrictedChannelsQ)
}
nuchan, err := b.UserIndex.Search(bleve.NewSearchRequest(boolQ))
nuchanSearch := bleve.NewSearchRequest(boolQ)
nuchanSearch.Size = options.Limit
nuchan, err := b.UserIndex.Search(nuchanSearch)
if err != nil {
return nil, nil, model.NewAppError("Bleveengine.SearchUsersInChannel", "bleveengine.search_users_in_channel.nuchan.error", nil, err.Error(), http.StatusInternalServerError)
}
@@ -465,7 +471,7 @@ func (b *BleveEngine) SearchUsersInTeam(teamId string, restrictedToChannels []st
}
search := bleve.NewSearchRequest(rootQ)
search.Size = options.Limit
results, err := b.UserIndex.Search(search)
if err != nil {
return nil, model.NewAppError("Bleveengine.SearchUsersInTeam", "bleveengine.search_users_in_team.error", nil, err.Error(), http.StatusInternalServerError)