| UI or UX | UI + UX - Structured query builder for fielded, Boolean, grouped, or syntax-backed searches | UI + UX - Search input and result list | UI + UX - Grouped filter control panel for narrowing a current result set | UI + UX - Control that selects which corpus, location, or result source a query searches |
| UI guidance | Render advanced search as a labelled query-construction surface with visible field, operator, value, and Boolean join controls, plus a readable query preview that shows what will run. | Render a labeled search field, result count, matching rows, and clear action. | Render filter categories as labelled form controls in a panel adjacent to the result set on wide layouts, with a visible result count and active-filter summary near the results. | Render the active search scope near the search input and result summary, using user-facing corpus names such as Current workspace, All knowledge, This repository, or People. |
| UX guidance | Use advanced search when users need precise retrieval across multiple fields, date ranges, exact phrases, exclusions, functions, prior searches, or grouped Boolean conditions. | Help users find known content without browsing every category. | Use a filter panel to help users narrow the current list or search result set while preserving orientation, search query, sort order, pagination context, and selected values. | Use a search scope selector when the same query can search meaningfully different content sources and users need to control where the system looks. |
| Good UI | A research database builder lets users choose Title/Abstract, enter a term, add it with AND or OR, preview the generated query, and see a count before leaving the page. | A clearly labeled search field with result count and results placed directly below. | A desktop search page shows a left filter panel with Status, Type, and Date groups, while active chips and the result count sit above the results. | A knowledge search field includes scope buttons for All knowledge, Current workspace, Cases, and People with the active scope repeated above results. |
| Bad UI | A button named Advanced search opens the same one-line keyword input with a larger border. | Search input hidden behind only an icon with no label. | A filter drawer closes with no active count, leaving users unaware that filters are still hiding records. | The placeholder says Search this site, but after typing only a generic magnifying glass remains and the result page no longer names the scope. |
| Good UX | A user adds Author contains Patel OR Journal equals Pediatrics, previews 28 matches, and saves the finished query after confirming the generated syntax. | Users can type, revise, clear, and keep context while inspecting results. | A user selects Status: Open and Type: Appeal, applies the batch, lands back at the result summary, and sees 12 records with both criteria removable. | A user searches appeal in Current workspace, switches to All knowledge, and sees the same query rerun with a larger result count and broader source summary. |
| Bad UX | A user changes AND to OR but the UI does not show grouping, causing a much broader query than intended. | Search silently changes unrelated filters. | Applying a filter silently resets the query, sort order, current page, and view density. | Switching from This repository to All GitHub clears the query and leaves users unsure whether anything ran. |
| Best fit | Expert or repeat users need precise retrieval across fields, operators, phrases, dates, ranges, exclusions, functions, or prior search history. | Users know a word, name, or identifier. | Users need to narrow the current search results, browse results, table, card grid, or list by multiple criteria. | The same query can search different repositories, sites, workspaces, spaces, channels, result types, teams, or organization-wide indexes. |
| Avoid when | Most users only need one keyword box and a ranked result list. | The task is choosing a command with side effects. | The result set is small enough that scanning is faster than filtering. | There is only one searchable corpus and scope selection would be decorative. |
| Required state | Empty builder state with field, operator, value, and Boolean controls labelled. | Empty query state. | Default state with no user-applied filters and an explicit result count. | Default scope state based on current location or product-wide policy. |
| Accessibility burden | Label each field, operator, value input, Boolean joiner, grouping control, generated query, and validation message with stable accessible names. | The input has a stable accessible name. | Use semantic form controls with fieldsets, legends, labels, and accessible names for filter categories and values. | Use a labelled fieldset, radio group, select, or tablist only when the semantics match the scope interaction. |
| Common misuse | Calling a simple filter drawer advanced search without supporting clauses, Boolean logic, or query preview. | Using placeholder text as the only label. | Hiding active filters inside a closed panel with no count, chips, or result-state summary. | Putting scope only in placeholder text, which disappears when users type. |