From b6d374f683cbe2b5d7c583a7d3c00e186e1c804d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Duffeck?= Date: Mon, 4 Jul 2022 16:35:44 +0200 Subject: [PATCH] Support specifying a search limit --- services/search/pkg/search/index/index.go | 3 +++ services/search/pkg/search/provider/searchprovider.go | 1 + services/search/pkg/service/v0/service.go | 3 ++- services/webdav/pkg/service/v0/search.go | 3 ++- 4 files changed, 8 insertions(+), 2 deletions(-) diff --git a/services/search/pkg/search/index/index.go b/services/search/pkg/search/index/index.go index 8ce98b18b..7ad010740 100644 --- a/services/search/pkg/search/index/index.go +++ b/services/search/pkg/search/index/index.go @@ -223,6 +223,9 @@ func (i *Index) Search(ctx context.Context, req *searchsvc.SearchIndexRequest) ( ) bleveReq := bleve.NewSearchRequest(query) bleveReq.Size = 200 + if req.PageSize > 0 { + bleveReq.Size = int(req.PageSize) + } bleveReq.Fields = []string{"*"} res, err := i.bleveIndex.Search(bleveReq) if err != nil { diff --git a/services/search/pkg/search/provider/searchprovider.go b/services/search/pkg/search/provider/searchprovider.go index 52954b3e1..d82c72463 100644 --- a/services/search/pkg/search/provider/searchprovider.go +++ b/services/search/pkg/search/provider/searchprovider.go @@ -144,6 +144,7 @@ func (p *Provider) Search(ctx context.Context, req *searchsvc.SearchRequest) (*s }, Path: mountpointPrefix, }, + PageSize: req.PageSize, }) if err != nil { p.logger.Error().Err(err).Str("space", space.Id.OpaqueId).Msg("failed to search the index") diff --git a/services/search/pkg/service/v0/service.go b/services/search/pkg/service/v0/service.go index 1b003e88d..9fd0da6d4 100644 --- a/services/search/pkg/service/v0/service.go +++ b/services/search/pkg/service/v0/service.go @@ -94,7 +94,8 @@ func (s Service) Search(ctx context.Context, in *searchsvc.SearchRequest, out *s ctx = grpcmetadata.AppendToOutgoingContext(ctx, revactx.TokenHeader, t) res, err := s.provider.Search(ctx, &searchsvc.SearchRequest{ - Query: in.Query, + Query: in.Query, + PageSize: in.PageSize, }) if err != nil { switch err.(type) { diff --git a/services/webdav/pkg/service/v0/search.go b/services/webdav/pkg/service/v0/search.go index 7ba77db16..084475ab9 100644 --- a/services/webdav/pkg/service/v0/search.go +++ b/services/webdav/pkg/service/v0/search.go @@ -44,7 +44,8 @@ func (g Webdav) Search(w http.ResponseWriter, r *http.Request) { ctx := revactx.ContextSetToken(r.Context(), t) ctx = metadata.Set(ctx, revactx.TokenHeader, t) rsp, err := g.searchClient.Search(ctx, &searchsvc.SearchRequest{ - Query: rep.SearchFiles.Search.Pattern, + Query: rep.SearchFiles.Search.Pattern, + PageSize: int32(rep.SearchFiles.Search.Limit), }) if err != nil { e := merrors.Parse(err.Error())