Search Guidance

Retired Content

This content is outdated and is no longer being maintained. It is provided as a courtesy for individuals who are still using these technologies.
This page may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist.

Searching is a common requirement in most Web applications. Typical search queries include searching for a customer, a product, or an article. Figure 1 illustrates the MSDN search form that allows users to search for articles.


Figure 4

MSDN search form

Frequently, a search returns a very large number of results. In these cases, users must use accurate keywords to avoid getting hundreds, thousands, or even millions of unwanted responses. To help users quickly find what they are looking for, an application can dynamically update the search form without performing a full postback and display a subset of the search results. This subset changes as users enter the search criteria. Users receive instant feedback as they type their queries and can refine the keywords immediately based on the returned results. Figure 2 illustrates a search form that is included in the Real-Time Search QuickStart. This form displays search results as the user types.


Figure 5

The Real-Time Search QuickStart search form

Although dynamically displaying search results can improve the search experience, it can also increase the network and server resources demanded by the Web application if the application does not include a paging mechanism. The absence of a paging mechanism can, in turn, negatively affect both the search performance and the performance of the overall application. Including a paging mechanism is also useful for users because they see a small amount of information that they can quickly scan and then use to refine the search.

When performing a search, the server takes some period of time to return the search results. When you implement a search process with a partial postback, this delay can lead to a poor user experience because users have no way of knowing whether the search is in progress. To prevent this, search forms can include progress indicators. Progress indicators give immediate feedback to users, telling them that the search is in progress and that the results should be displayed soon.

The purpose of this guidance is to provide guidance on how to implement searches that dynamically display the results.

What Is in This Guidance?

The Search Guidance contains the following elements:

  • Real-Time Search Behavior guidance. This topic explains how to implement a search that dynamically presents search results as the user types search criteria.
  • Real-Time Search QuickStart. This topic demonstrates how to use the RealTimeSearchMonitor control to add real-time search capabilities to a search form.
  • RealTimeSearchMonitor Control. This topic explains how you can use the RealTimeSearchMonitor control to implement a real-time search without writing custom client-side code.
  • Patterns related to Search. This topic explains various patterns that are used by the RealTimeSearchMonitor control.