Advanced search is the ugly child of interface design -always included, but never loved. Websites have come to depend on their search engines as the volume of content has increased. Yet advanced search functionality has not significantly developed in years. Poor matches and overwhelming search results remain a problem for users. Perhaps the standard search pattern deserves a new look. A progressive disclosure approach can enable users to use precision advanced search techniques to refine their searches and pinpoint the desired results.
Fig. 1: A typical separation of standard and advanced search (Yahoo!). The design discourages use of advanced search.
In the quest to make web sites more usable, we settled on a pattern of a clean, minimal search box with a link to an advanced search page. Jakob Nielsen recommended, “use an intimidating name like ‘advanced search’ to scare off novice users from getting into the page and hurting themselves.”(1) This model has been successful. Search rivals hierarchical website navigation on many sites and is the primary means of navigation on enormous sites such as Ebay and Amazon. Advanced search, however, has not fared so well, with only a small percentage of users using it.
Why most people don’t use advanced search
Despite its name, advanced search has not advanced very far. There is great power to conquer the overwhelming number of search results, but the current standard presents barriers to users. Specifically,
- The link is often small, vague, and does not describe benefits to the user
- Advanced search pages typically have confusing page design for the few who make it there.
- There is generally poor search revision functionality: Once a search is performed, the “advancedness” is lost. For example, the Google advanced search delivers the standard search results page. You have to get the query right the first time; there is no opportunity to adjust your query.
Fig. 2: Google’s advanced search is still complicated.
Who does use advanced search?
Tim Bray wrote, “The people who do use Advanced Search are your most fanatical users, the professional librarians, spooks, and private investigators.”(2) As in many situations, segmenting a population makes it harder to see whether the needs of a subgroup are shared by the majority. Current design is based on the idea that there are two separate audiences with distinct needs. The reality is that there are overlapping needs that are limited by the search pattern.
The essential problem of search — too many irrelevant results — has not gone away.
A typical user has to make a choice between doing a search and clicking a link to do a search. In other words, do you want it now, or want to go somewhere else to look? The immediacy of the search text field and the complexity of advanced search means that users will try the text search first.
Perhaps the old framing is wrong. Rather than being a matter of geeks versus normal people, the question should be whether users see a benefit to advanced search on starting. Unfortunately, there is typically no way to use advanced search at the point users realize they need it — when they haven’t found what they were looking for and have too many search results. They have “missed the exit” to advanced search. Users don’t want to lose the investment in their search; they need a way to use additional techniques to work with what they have. A new model of search can help with this problem.
Other approaches to search
Let’s take a quick look at other search innovations from the last decade. Web data has matured and become more structured. Taxonomies and tagging are now common. There are new opportunities to deal with search results overload by filtering, as long as it is clear and easy for the audience. Despite the truism that users will not go past the first page of search results, they will use obvious tools to refine their searches.
Searching by defined parameters is natural in some circumstances (for example, airline ticket searching) but the majority of sites are not sufficiently data-driven to have an interface designed around the data.
Fig. 3: travelocity.com Flight searches, in a sense, only use advanced search.
Tags can improve search results by better describing what someone is seeking.
Fig. 4: amazon.com’s approach to tagging a product
Faceted searching, or returning browsing categories in the search results (as eBay does) can be effective at prompting the user to select a single category.
Fig. 5: ebay.com’s faceted search
Filtering search results
Amazon and Kayak offer filters to enable users to reduce many results to a few. This can be very effective, but there are obvious constraints due to the limited space available for each filter. Only the first few filters are visible when the page loads.
Fig. 6: Filtering on amazon.com and Kayak
Another approach: Progressive disclosure of functionality
One solution to the essential problems of advanced search discoverability and complexity is to progressively disclose (3) the functionality to the user. Instead of a single, complicated page, break it into understandable units and give each to the user when they ask for it.
In this example, show the ways the user could filter the results (e.g., “Brand” or “Price”) in a highlighted banner above the search results.
Fig. 7: Filters highlighted in a banner (it doesn’t have to be green, it just has to stand out!)
When the user clicks a link, display the filter with enough space to clearly articulate how to use it. Don’t cram it in; the user asked for it. In contrast to the left-hand column filters in the examples above, which are naturally space-constrained, this method can hold many more types of filters and doesn’t show functionality they didn’t request.
Fig. 8: When the user clicks "price" above, give the module enough space to be readable.
Let’s look at an example scenario.
1. The user performs a text search normally.
Fig. 9: Searching for a DVD player using the simple search box
2. On the search results page, show options to filter the search in a prominent location above the results. Communicate the value of filtering. Order them by popularity, using size and font weight to highlight others. If there are many options, consider hiding rarely used options under an expandable section.
Fig. 10: A search results page, with options to filter.
3. When the user clicks an option, display a page module for that search parameter without reloading the page. The user should be able to change the parameters at any time to receive an updated search. If possible, show the number of results for each parameter, so the user can see how exclusive it is, and identify which parameter maybe giving them 0 results.
Fig. 11: The search results, filtered by price.
4. Enable the user to add several modules, stacked in chronological order as the user builds up a complicated query.
Fig. 12: The search results, filtered by price and rating.
Define an implicit method for Boolean rules (AND and OR rules) based on normal search patterns — do not ask users to compose Boolean queries. A system that has worked for me is this: If a user selects several different search parameters, perform an AND search between them (e.g., Sony AND Portable). If they choose multiple values for the same parameter, perform an OR search (e.g., Sony OR Panasonic). However, if parameters (such as product features) are clearly non-exclusive, perform an AND search (e.g., Portable AND “HD ready”).
Recognize that quick searches, text searches, and advanced searches may be built with different technologies (e.g., direct database searches, a Google box, or a content management system). You may need to work closely with the developers to make a seamless transition between technologies.
If there are many parameters (more than 15), consider reducing complexity by hiding less used ones under a “see more…” link below the displayed options. Clicking it should display all the options without a page refresh. Evaluate your search logs to make sure you are exposing the right ones. Consider rotating the exposed ones to discover potential popular features, as exposed options will naturally get more usage.
At its core, advanced search is an under-utilized tool hampered by its own design. By enabling the user to add specificity as they request it, designs such as the one above avoid the lonely fate of the standard advanced search page. Defusing this complexity and locating it where users will naturally find it will help advanced search be truly advanced.