Adventures in advanced search
A while ago Column Two linked to a great article on improving Advanced Search by Stephen Turbek of Boxes and Arrows. The article talked about why people don’t use advanced search, who does use advanced search and proposes some alternate approaches including faceted searching and filtering.
I confess to being a fan of faceted search, especially as a tool for Enterprise Search. Lawyers like it, and find it easier and faster to enter a short query, using intelligent facets to filter results. Of course, it’s best when a simple search brings back exactly what you want, but the technology is not there yet.
In some instances you need an approach for those who like to “front-load” their queries with complex criteria (information professionals & librarians tend to receive training along these lines). So for them, consider the following advice:
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”).
For simple search domains, the above approach can work well, but for more complex domains the approach can be extended. Let’s say you’re looking for a Samsung or Sony television, which must be 32 inches and HD ready (code warning).
(Brand = (Samsung or Sony)) AND (Features = (32 Inches and HD ready))
This is conceptually straightforward, and many librarians have used tools which allow these types of queries to be entered textually The challenge is to deliver an interface which allows these queries to be built point-and-click, without resorting to typed queries.
So far, the only site I’ve seen to implement this is Microsoft Live Search.
The site does allow for typed queries, but works better with a point-and-click approach. If you can come to grips with the details in the next section, this approach can be expanded to build extremely complicated queries via a simple user interface.
Underlying principles
I’ll warn you now, I’m about to go all “computer science” on you. Run away, I understand. If you can stand to read the rest, hopefully it provides the detail explaining how the problem might be tackled. The logic then helps to dictates the interface.
Key things to keep in mind:
- it’s ALWAYS an AND search between different types of objects eg. (make) AND (feature)
- It’s an OR search when searching for variations of the same object, you just need to get to the right level of detail (red OR blue)
Most importantly, an object can be broken into its component parts, and the above logic applies recursively (brain hurting yet?).
Let’s say, you’re looking for a bit of Tax knowhow that is specific to Energy sector clients. It’s always an AND search, an OR search simply makes no sense. (the entire point of search is to narrow the scope not increase it).

Would you ever really look for Tax OR Energy knowhow? Just execute two different searches. Isn’t that what you do with Google when you’re looking for two different things? Forcing your developers to build a search engine that supports this is waste of time in my view. Far better to implement a “shopping basket” interface, where you tip your knowhow into a shopping basked and checkout (i.e. print) the results when you’re done. Just like when you get something from Amazon.
Now, that’s a simple example, but do your homework (venn diagrams help a lot), and it can scale out to some very complex searches.
From a design perspective, it means your poor developers don’t need to build an infinitely flexible user interface. You do need to map out the taxonomy of the various knowledge assets you’re searching across and design an interface based on likely search use cases.
Hopefully the Live Search gives you a rough idea of where to start. If you’d like to explore the idea more, send me an email or post a comment.
