Making Search Usable: Apache Solr and Faceted Search UI Challenges

We encourage users to post events happening in the community to the community events group on https://www.drupal.org.
dergachev's picture

The slides are available here: http://docs.google.com/present/view?id=dfmz85hd_297fjkj42f3

This talk will be co-presented by Logan Smyth and Alex Dergachev of Evolving Web.

Ever since we started using Apache Solr for our projects, we've been looking into ways of making search more intuitive and usable. The Apache Solr module provides Drupal with faceted search functionality. With large sets of data and lots of search filters, faceted search is a user interface challenge. It also opens up a world of possibilities for UI innovation.

In my session, I talk about some of these usability challenges and examples of innovative solutions. You can get a taste of the type of sites I'll be drawing from in this post we wrote about creating usable search filters.

Some background on Faceted Search:

Faceted Search

Faceted search is a killer feature, as it blurs the distinction between browsing and searching. It provides a use for taxonomy that's more flexible than the traditional menu-centric approach. It makes "Advanced search" possible even if when you're not entirely sure what you're looking for.

Facet Blocks galore

You might have dozens of different CCK fields on your content types, but you can't present your user dozens of facet blocks. How many is acceptable? Should your UI to let users choose which facets they'd like to see? For one of our projects, we created separate tabs (News, People, Events, Media) and customized the filters that appeared for each tab. Another option is collapsible facet blocks, revealed by clicking on "Show advanced options." A third approach, taken by http://mspace.fm, is to provide a drag and drop UI to let the user choose which facet blocks they want. This makes sense for data-exploration use cases.

Facet Block widgets

Facet blocks can be displayed in any number of ways, including Tag Clouds, Calendars, Autocomplete Boxes, as well as plain lists of links. In certain cases, you may even want to group multiple related facet blocks together.

Unconventional Search Results Templates

With the advanced search UI that Solr provides, it's often useful to display the results in a way other than just a list or a grid… Some examples are a gallery display, an interactive google map, a calendar layout, an editable grid, or anything else you can imagine.

Comments

quid.oblitus's picture

Possibly I already have without realizing that drupal was a part of what I was seeing.

Tabbed search

vivek.saurabh's picture

Can you please provide the code for creating tabs as you explained above tabs (News, People, Events, Media) or you have achieved in the mcgill university's site.

Cheers,
Vivek.


saurabh.vivek75@gmail.com || +91 9769934465
Please consider the environment before printing this email.

Vivek, you should check out

dergachev's picture

Vivek, you should check out our blog post on custom search tabs: http://evolvingweb.ca/story/apache-solr-mastery-adding-custom-search-pat...

Good luck with your project!

Hey, Thanks a lot your blog

vivek.saurabh's picture

Hey,

Thanks a lot your blog really helped a lot, I got the tabbed search but I am not able to show the number of search results(2, 3 or 5) in tabs.

Cheers,
Vivek.


saurabh.vivek75@gmail.com || +91 9769934465
Please consider the environment before printing this email.

Hey Vivek, I'm not exactly

dergachev's picture

Hey Vivek,

I'm not exactly sure what you're referring to, but if it's the results count (as seen here: http://muhc.ca/search/apachesolr_search/cancer), we display that via a custom block, which is rendered with the following code:

<?php
//in a custom block

  
$active_tab = ew_apachesolr_active_tab();
   if (
$response->response->numFound) {
     return array(
      
'subject' => theme('apachesolr_ew_currentsearch', $response->response->numFound, $active_tab['name'], $query->get_query_basic()),
      
'content' => empty($active_tab['hidden']) ? t('Select a tab above to narrow your search') : '&nbsp;',
     );
   }
?>

Hope this is of some use to you. Unfortunately I can't help you much further, but I'll mention to our developers that there's quite a bit of interest in a follow up blog post.

Cheers,

Hi, That helped a lot, and

vivek.saurabh's picture

Hi,

That helped a lot, and thanks for your support.

Cheers,
Vivek.


saurabh.vivek75@gmail.com || +91 9769934465
Please consider the environment before printing this email.