From 4083cf78d4adfbf2f692140d2aa0d183df7b85a3 Mon Sep 17 00:00:00 2001 From: Ryan McKinley Date: Thu, 8 Jan 2026 09:31:50 +0300 Subject: [PATCH] default sort --- pkg/registry/apis/dashboard/search.go | 27 ++++++++++++++++++--------- 1 file changed, 18 insertions(+), 9 deletions(-) diff --git a/pkg/registry/apis/dashboard/search.go b/pkg/registry/apis/dashboard/search.go index 08a943b8da6..dd91608172c 100644 --- a/pkg/registry/apis/dashboard/search.go +++ b/pkg/registry/apis/dashboard/search.go @@ -8,7 +8,6 @@ import ( "net/http" "net/url" "slices" - "sort" "strconv" "strings" @@ -316,6 +315,12 @@ func (s *SearchHandler) DoSearch(w http.ResponseWriter, r *http.Request) { return } + // sort.Slice(parsedResults.Hits, func(i, j int) bool { + // // Just sorting by resource for now. The rest should be sorted by search score already + // return parsedResults.Hits[i].Resource > parsedResults.Hits[j].Resource + // }) + // } + result, err := s.client.Search(ctx, searchRequest) if err != nil { errhttp.Write(ctx, err, w) @@ -332,14 +337,6 @@ func (s *SearchHandler) DoSearch(w http.ResponseWriter, r *http.Request) { return } - if len(searchRequest.SortBy) == 0 { - // default sort by resource descending ( folders then dashboards ) then title - sort.Slice(parsedResults.Hits, func(i, j int) bool { - // Just sorting by resource for now. The rest should be sorted by search score already - return parsedResults.Hits[i].Resource > parsedResults.Hits[j].Resource - }) - } - s.write(w, parsedResults) } @@ -428,6 +425,18 @@ func convertHttpSearchRequestToResourceSearchRequest(queryParams url.Values, use } searchRequest.SortBy = append(searchRequest.SortBy, s) } + } else if searchRequest.Query == "" { + // When no query exists, return the results in a predictable order + searchRequest.SortBy = []*resourcepb.ResourceSearchRequest_Sort{ + { + Field: resource.SEARCH_FIELD_GROUP_RESOURCE, // folders then dashboards + Desc: true, + }, + { + Field: resource.SEARCH_FIELD_TITLE, // then title + Desc: false, + }, + } } // The facet term fields