All Results Tab in Advanced Search
Problem to solve
With semantic search and embeddings coming online, we'll be able to provide a better default search experience because the relevance of to the user's search query–independent of its facet–can be calculated. This means that we show multiple result types on a single page and have the implicit state be true: that the results are ranked purely by relevance, independent of type.
Proposal
- Create an "all results" default view that displays a view combining the available scopes into one, ranked by relevance
- Existing facets/scope filters should remain visible and filter types per scope will remain
- Allow sorting by relevance (descending), updated date, and created date
- Default sort is by relevance, descending
- We won't always have a query term to use and in that case the "all" tab should be populated with items that are sorted by updated date descending
Quality validation
We should first test the query results via the Elastic dev console to verify that this approach gives relevant results. We may find that the computed similarity scores provide a strange mix of results that are less relevant in practice than the scores would indicate.
Original issue content below (from 2020)
Relates to: #342186
Problem to solve
Global Search currently hides many relevant results because search defaults to one of many tabs. The Default can change based on users state when they do their search. This can lead to an inconsistent experience.
User experience goal
User searches should default to an All Tab.
Proposal
Create all results.
This would be a combination of results from Issues, Merge requests, Comments, and Users.
This would not include. Commits, Code, and Milestones.
Actionable Insight
Users want to see all results when performing a search, with the ability to filter down using facets.
Why: Uses expressed frustration with having to switch between tabs to view different types of search results (this was especially apparent in times when they were interested in seeing results for multiple object types - example being Issues + MRs).
Action: Present all search results to users when performing a search, with the ability to filter different object types on/off using facets in a sidebar.
Note: Although this action proposes we show all results to users during a search, it still may make sense to have some filters pre-selected based on their context when making the search (i.e. from an issue list).