In a web application used to search content inside documents, we have a view displaying the main parts of a documents:

  1. Chapters
  2. Diagrams
  3. Tables of data

Users can search for specific words inside this document extract. The app then displays chapters, diagrams and tables corresponding to the search.

The thing is that the order of elements is important to have an idea on the document and data. On the other hand, it is necessary to help the user find the best matches in the document for his search.

I identified two approaches: 1. Make a list of the 3 best matches at the top of the page, redirecting to the elements in context 2. Display an indicator of pertinence for each element.

Do you have any good examples in mind of good implementations for these solutions? Do you think of another solution?

3 Answers 3


Your solutions (both of them) are quite reasonable and can be used together.

  • Showing the best matches at the top is best when almost always the desired result is in the top few. User research will tell you if you should show the top 1, 2, 3, 5, or whatever. You can add a link to the best matches that jumps the user down into the document-ordered search results so the user can see the result in context of the document (more or less).

  • Marking the best matches in the document-order search results is best when the user is simultaneously scanning results by document-order and quality of match (e.g., they want the best match in the middle third of the document). The more results you tend to have, the bolder the marking has to be so the user can spot it while quickly scrolling through the results. At some point you can have so many search results that this no longer works –the scrolling gets to be too laborious. How easily can users scroll through the results? If this is a web app where users have to page through results, it may not work at all.

You say both document order and match quality are important, but when is each important where? Why exactly do users need “an idea on the document and data”? What idea do they need to get for this task? That will tell you the best design. Here're some other options:

  • Thumbnail side pane. You can have a pane on the side that shows all the search results in abbreviated form (thumbnails or excerpts), all sorted in by quality of match. The main pane shows the same results in full form, sorted in document order. Like your “best matches at top” approach, clicking a result on the side pane jumps the user to the full-form search result in the main pane. This is better than “show the best at the top” when often the user wants something with mediocre match quality (according to your possibly imprecise rating system), so it tends not to be among the “best” three or so.

  • Variable sort order. Maybe user tend to scan results by document order or match quality –maybe these are two different tasks done at different times for different reasons. Then you can provide a control for the user to sort on either document order or match quality, defaulting to what they usually do. If you maintain the view of the selected result when resorting (jump the scrolling as necessary), the user can search first by match quality, select the result of interest, then resort on document order to see the context of the document.

  • "Georgian Bars". Show only the results in document order, but mark on or beside the scrollbar the corresponding places of the best matches. The user can then quickly scroll (by dragging the scrollbar slider) to the best match within the rough place of interest in the document. You may also want to mark significant divisions of the document on the scrollbar (e.g., chapters) since the search result location won’t always be in the proportional to location in the document itself.

  • Best, Less Good, Better buttons. If users tend to always want the best (or nearly-the-best) match, but also almost always need to see the result in document order, then show the results in document-order and include menu bar buttons that jump the user to the best match, then allow them to step forwards and backwards to the next best matches. You probably want to by default scroll to the best match in the results the save the user from having to click Best all the time.

  • Document context info/thumbnail/link. If users tend to need to know the context after selecting a result based on match quality, then sort the results by match quality only, but include with each result a thumbnail or excerpt or other information that shows where the result is in the document. A link in each result jumps the user to the document (either back on the document window/page, or in its own pane beside the search results), and automatically scrolls it to where the result is so the user can see the full context. In other words, you don’t want a Search function but a Find All function. This is best when the user cares about the content around the selected search result, not the other search results around the selected search result or the approximate position within the document.

  • Document location search criteria. If users tend to have in mind a place in the document from where they want the relatively best matches, then make the document place a criterion of search (e.g., between Chapters x and y or pages n and m), and sort the results by match quality. Consider a faceted search with multiple criteria to filter the results and find the best match given certain other conditionals.

  • Very inspiring, useful and complete answer. Thanks.
    – ghusse
    Feb 25, 2015 at 14:01

I identified two approaches: 1. Make a list of the 3 best matches at the top of the page, redirecting to the elements in context

This technique you’re referring to is called “Best bets”, and can take many shapes and form. BBC used this on their search page before but have for some reason taken it away. But in your case, I think it’s a good idea. Especially pointing to a place in context (I guess the correct page in the document).

Here is an (very old) example of how Dell used best bets on their search engine result page (SERP)

enter image description here


I think there are a few more things to ask about this.

What sort of result will give best value to the user? How many results are you expecting from an average search? How much context is required to make the results useful?

With most word or phrase based searches it's best to show the results in order of relevance: Searching for "cats washing" should show results that contain the exact phrase first and results that contain phrases like "I like cats. Yesterday I was doing some washing" should fall later in the list as they are less likely to be the result the user was searching for.

If you're only ever expecting a handful of results, then you could display them in the order they appear in each document. But with any more than just a few results this will make locating the correct result much harder for the user.

Google displays search results in order of relevancy and includes the name of the document where the result was found and a short excerpt of text around the result allowing the user to judge contextual accuracy for themselves.

Sublime (code editor) does something similar for a multi-file search but, once inside a single document, highlights the search string in place and provides 'previous' and 'next' buttons to step through all results in that document.

I hope that's helpful.

  • Thank you for your input. The view also presents short excerpts for chapters relating to your search. Finding the most relevant elements is a key in this kind of view, but it was not my point (let's assume it's done). The thing is that I don't think it will be a good idea to reorder elements, as we are searching in a structured document : we are not presenting results having no link between them such as google results.
    – ghusse
    Feb 25, 2015 at 10:11

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.