When you have a traditional faceted search that uses AJAX the user experience is generally good because there is immediate feedback on the current state of the system. The user will know what other facets are still available to further refine their search, and they cannot select a combination of facets that will return zero results.

The problem is how do you give the user the ability to save/share a collection of search criteria?

When using a full page post back for each selection you can add query string variables representing the search criteria, but this is not the case with async.

Option A: Include a "Permanent Link" element in the UI


download bmml source – Wireframes created with Balsamiq Mockups

Option B: Include a "Share This" element


download bmml source

Are there more options? Should you even try to do this?

  • 1
    +1 Great Question, well thought trough and reasonable in scope! Jan 31 '13 at 19:56

You have two good options which doesn't exclude each other - so I'd say why choose when you can have both? I think both are equaly valid since some users don't trust "Share on FB" and rather want to share th URL instead. So if you have both the "share"-option and the copy-URL option more users will find your implementation supporting their way of using the web. That means that David Beckham on the News facet would have both URL like Google:


enter image description here

... and the Share-buttons, which would make your Search Result Page (SERP) better than Googles'. How about that?! ;-)

  • I agree it is not really a binary either/or - good example. The other issue I've spent time thinking about is how to make these SERP links themselves more user friendly! Jan 31 '13 at 19:59
  • 1
    @Charles That's hard to do - but turn your head to SharePoint SERP. Not the best search engine - agree on that - but there SERP is awesome. blogs.gartner.com/larry-cannell/files/2010/09/… Jan 31 '13 at 20:16
  • 1
    Interesting way of indicating active facets--that is pretty slick Jan 31 '13 at 20:25
  • 1
    @Charles And there are several facets available at the same time. Neat! Jan 31 '13 at 20:27

Thanks for the thoughtful examination of search state and sharing.

I have a point of correction to contribute. You mentioned that query strings can't reflect search criteria with async in the picture:

When using a full page post back for each selection you can add query string variables representing the search criteria, but this is not the case with async.

Good news: it's actually not difficult to run completely async and still update the URL to reflect the state of your faceted search in real time. The methods are relatively recent but they're built on broadly supported standards and easy to implement thanks to various client-side frameworks.

For a nice example, try the advanced search at Vimeo. Play with the facets and you can see the results being updated asynchronously, along with the query string in the address bar.

This is a big win for mobile users, too, as we watch the "share" functions become more and more integrated at the browser and platform level.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.