It’s hard to imagine a product without search, yet it’s rare to see a product that does it well.
It’s one thing to say “let’s have search” and draw a box with a magnifying glass on the right. It’s a whole other task to implement good search. We’ve discussed previously how search is an iceberg. In this guest post Intercom customer Nicolas Dessaigne, CEO of Algolia, explains 7 key components to a great search feature.
Why Is Search Important
The Web is turning into an application platform. Websites are being overthrown by complex and advanced applications, designed around the interactions between users and content. You use them everyday, they’re part of our lives: Salesforce, Airbnb, Spotify, and of course Intercom.
You simply can’t browse effectively anymore. There’s too much content. Content is great but it often comes at the price of find-ability. Think about the tens of thousands of people in your CRM tool. You don’t want to browse, you want to type a few letters and find the right contact.
Great search experience is all about speed and relevance. You want to provide the right result for minimum effort. Your product needs a search engine that thinks like your users, and one that understands from a few letters exactly what is being searched for.
How do you do that? Here’s 7 ways.
1. Provide real results from the first keystroke
Autocomplete, as you experience it, only suggests queries, not results. End users still need to hit enter or select a suggested query to see results. Why not skip this step and offer real results as they type? This is exactly what Spotlight does. This is what LinkedIn does. This is what Facebook does.
Finding results is easy. Finding them as the user types is easy. The hard part is to show the right results first. There’s are a few simple tricks that can help you achieve that.
2. Search across multiple attributes
When looking for something, such as a contact, users will often only remember pieces of information, such as this person’s first name, the company they work for, where they live, etc. You use these touch points to hit the right result. You want to allow your users to type “John London Macy’s” and find the right John.
Everywhere that makes sense to your users should be searched: name, title, tags, location, company, author, merchant, factory, platform, etc. And it must do so seamlessly, without the need for your users to specify the attribute they want to search in.
Ranking is quite different in web products than it is for web sites. Search solutions are designed to search across large volumes of text, counting number of occurrences, quality & quantity of inbound links etc, to give a ranking.
None of this works for web products. The items you’re searching are usually small (3 or 4 pieces of information), there’s no concept of occurrences, and no concept of inbound links.
But the identity of small objects is not best defined by the number of times their description might contain “iPhone” for instance. Any iPhone is an iPhone. This identity is more the combination of multiple dimensions (name, color, size, price, you name it). So you create ranking rules that deal with this new nature of the content.
You need to go further. If your user is searching for “John” in your contact database, your engine may return 100 different Johns. They are not all the same to your user. The most “important” John may be the one he had on the phone yesterday, the one who is a hot prospect right now, or the one who opened the most sessions on Intercom.
So you need to capture and use what makes each piece of content important. e.g. views of a video, sales for a product, etc. Even with limited input you will still be able to identify the right results to return. Users start to feel like you’re reading their minds.
And you can keep adding context and criteria that tells you what matters most. For example a user searching for a restaurant on their phone has an implied context that they’re looking for it, so geo-location is probably an important ranking element. Similarly, someone searching for Superbowl on the day of the event is most likely looking for the score. Try a demo.
4. Explain why the results are there
Your users need to understand why you suggested these results. It will help them quickly spot the best result according to them or see if they need to rephrase their query. There is one simple way to do it: highlight the words/letters that matched in the results. You can hide the attributes that didn’t match, but show them if they did.
This rule is even more important when accepting typos. If you don’t highlight what matched, it is very easy to be confused by results that are only approximate. Try a demo for RapGenius
5. Offer meaningful filters
Some products propose advanced search syntax to users, where they need to write specific operators (e.g. Zendesk search reference). This works for power users, but rarely for anyone else.
You don’t want to force users to learn specific syntax just to use search. Display filters that make sense according to the results offered. For contacts, allow your users to filter by companies, titles, etc. For companies, allow them to filter by industry, company size, location, etc.
Faceted filters have become a must have. Adding and removing filters/facets allows your users to easily navigate through subsets of results, by simply clicking on it. Don’t forget that facets can also be disjunctive, enabling the selection of multiple values at the same time (3 and 4 star hotels for instance).Try a demo for Eventbrite
6. Accept users mistakes
We all make mistakes when we type. You need your search engine to be forgiving when it comes to spelling. It needs to match approximate hits, synonyms, and common misconceptions too. Be careful though to rank these results lower than the exact matches.
7. Provide a consistent experience wherever your users use your product. Target mobile devices!
Mobile first! This has certainly become a major concern for most Web Apps. The good news is that if you follow all the previous recommendations, you are good to go!