The power of decoupling advanced search UI for complex search strategies

kporras07

John Hopkins University needed to improve its search repositories for documents and pictures in order to give a better experience to researchers.

How would you allow your users to build this query?

(Image: http://i.imgur.com/ftNj6lg.png)

One of these websites helps researchers get the articles and information necessary for their work, and with more than 390,000 records, they need to use powerful search techniques and strategies to get what they are really looking for.

Decoupling (Calling in the heavies!)

It's impossible to do that search with Drupal, so we brought the real power in: a javascript framework and a pinch of ajax to do monstrous and flexible searches for power users.

The set up:

  • A javascript framework (Angular in this case)
  • Serving two sites through modular development
  • A pinch of ajax
  • Unlimited length for monstrous searches

These were some of the resulting features we were able to pull off:

  • Integrated POPLINE Thesaurus within Search
  • Ability to add multiple search fields, mix and match search types however you like
  • Savable Search Groups to facilitate complex search strategies
  • Search History display
  • Ability to combine History, Saved, and New Searches
Making the hard, easy

Our UX Designer built some awesome and challenging interactions that helped advanced users search easily while doing flexible and complex searches.

(Gif: http://i.imgur.com/nXUG8w7.gifv)

Takeaways

We will discuss the results and our contributed module. We will be focusing on why it makes sense to decouple and the challenges and opportunities of the process, as well on tips and several discoveries. Search is far more complex than it sounds!

Who am I?

I've been Drupal backend developer for the last 3 years at Manati. We love to make great websites focused in optimization and performance. I met Solr two and a half years ago and I immediately loved the idea to move the search from db to another service (especially in big websites). I met Angular by hobby in a side project about one and half year ago and I was eager for a real project where I could use it, so, when Albatross Digital came to Manatí with this project, it was a great challenge and a great opportunity to me.


I like to build hard/interesting backend solutions using Drupal and PHP, and I'm now interested to know more about Javascript and JS Frameworks. I also love to work with devops tools such as vagrant and ansible.

Session Track

Coding and Development

Experience Level

Intermediate

Drupal Version