The University of Michigan's Health System (UMHS) understands that patients need to be matched to the ideal provider. Finding a physician with the right skills, experience, and availability takes careful technical implementation.

With search in particular, doctors don't use the same language as consumers. Patients have "heart attacks" while doctors term them "myocardial infarctions." Mapping the terminology between patients and experts is a key part of the search experience.

UMHS's platform of choice is Drupal. Apache Solr is the recommended search engine for Drupal. They needed to find the best way to enable Apache Solr on Drupal. UMHS's staff identified the following challenges with their Drupal-based platform:

  • Data Modeling for Relevance: Directly searching the data in Drupal tends to deliver mediocre search results.
  • Rapid, Custom Development in Drupal: Drupal's search API makes simple development faster, but doesn't allow for the customization needed to optimize the search experience.
  • Hosting Solr Search: Unfortunately, most Drupal-oriented Solr platforms utilize fairly outdated Solr versions and lack the capabilities needed for a rich search application. Standing up and managing your own servers, even with today's devops capabilities, is a headache!


To solve these challenges UMHS partnered with OpenSource Connections (OSC) for their search relevance expertise and SearchStax for their Solr-as-a-Service platform, SearchStax. They developed a three-pronged approach to rapidly develop the first release of UMHS's Find a Doctor search:


OSC knew on deploying search it wouldn't be perfect. This is where SearchStax Analytics comes in. SearchStax Analytics provided crucial insight into how well the implementation performed. Specifically, OSC noticed the need to optimize the "doctor shopping" experience via SearchStax Analytic’s Top Searches insights. Patients "shop" for a doctor by searching for a specialty like gastroenterology. This led to optimizations to improve the likelihood a patient shopping for a doctor would call and make an appointment.


After our initial modifications, we saw improvements immediately in the average click position of the search results. The Mean Reciprocal Rank (MRR) of 0.5 corresponds to an average click position of the second result, an MRR of 1.0 means the first result on average was clicked. After our single day of tuning, we went from a MRR of ~0.4 to 0.6.

Click depth in key specialty searches dropped tremendously, for example the average clicked result for Opthamology dropped significantly.

Having a Solr-as-a-Service platform that tightly integrates Drupal+Solr let the team quickly iterate on these changes to elevate the doctor search experience for UMHS.

Let's get started!