Needles in a haystack

Search has become second nature to most of us. We use it everyday to find things to buy, music to listen to, friends in faraway places or the optimum way to boil an egg. But nowadays there’s more to search than keywords and ten blue links.

Take this example from In this case thousands of items matched my search for 'Roald Dahl', and it is obviously not feasible for me to page through all of them to find the book I’m after. But the search engine is clever, it can give me insight into what types of products they have. By showing suggested filters on the left it can enter into a dialogue with me, effectively asking whether I’m after hard-copies or digital, in English or French etc.

When the list of options is limited, as with the format, it’s pretty straight forward. A quick glance will let the user determine a way forward. But if you consider the author list things get a bit trickier. Then consider the use case in far more complex enterprise applications such as data lakes, patent research or business intelligence and the problem is compounded.

In this case you really need a second step if the user’s intent was to find all books by a certain author. They could obviously have added this missing nugget to their query, but they may not have thought of that, or simply expected a different result. In this case the solution might be to allow the user to search within the suggested filters to pinpoint exactly the ones they would like to apply; a pretty standard, but as yet very underserved requirement.

Here’s how we do it with one of our standard components for larger facets:

 All data  in the example is open source
All data  in the example is open source

As you can see in the animation above, we can search within the filters to find all hospitals within the ‘Organisations' category - quickly narrowing down to exactly the ones we are interested in. And by the way, it's not a naïve search of the filters that were returned (think spotty yellow box :) but a true, accurate (deep) representation of all possible values. Neat isn't it?

Hit us up if this is a problem in your big data or search applications!