Jakob Nielsen summarized his opinions in his article:
Overly literal search engines reduce usability in that they're unable to handle typos, plurals, hyphens, and other variants of the query terms. Such search engines are particularly difficult for elderly users, but they hurt everybody. A related problem is when search engines prioritize results purely on the basis of how many query terms they contain, rather than on each document's importance. Much better if your search engine calls out "best bets" at the top of the list -- especially for important queries, such as the names of your products. Search is the user's lifeline when navigation fails. Even though advanced search can sometimes help, simple search usually works best, and search should be presented as a simple box, since that's what users are looking for.
I have to say that I fully agree with him. Simply put, a bad search engine can actually affect the user experience on a given website, because the results it might produce can make the user feel frustrated and disappointed. But what is a good search engine? A good search engine is something that:
- tries to correct typos and query variants, providing the correct results to a given query
- avoids the disappointing "no results found" page, as Amazon does
- suggests search queries during typing (with Ajax, for example)
- orders results in a relevance scale, so that a user can immediately jump to the most pertinent result
- provides some advanced search features to refine search results.
A search engine that fulfills these goals is already a good search engine, provided that it leaves room for further improvements. Flexibility is always the most required feature.