What is Federated Search?
Federated Search is an open source solution to a common problem. It works out-of-the-box, and can also be customized. There are three main parts to the product:
- Content indexing via Drupal integration (provided)
- Result serving via React application (provided)
- Data storage in a Solr backend (required but not provided)
How does it work?
With Federated Search, all sites in your network are pointed to a single Solr instance. The Drupal module Search API Federated Solr lets you map a consistent document schema into the index. From there, the React application handles searches, filters, and facets automatically.
With Drupal, Solr, and React working together, we’re able to index data from completely arbitrary sources, standardize it, and then output it in an easily consumable way. This approach means more flexibility for site administrators and a cleaner experience for users.
A number of commercial applications exist to provide this functionality, but our solution provides a number of benefits:
- Keeping the data source tightly coupled with Drupal allows for maximum customization and access to the source content.
- Providing a decoupled front-end allows us to surface results anywhere, even outside of Drupal.
- Being built on 100% open-source code allows for community improvement and sharing.
How do I get started?
We have a fully functional demo box using Palantir’s open source Vagrant environment and build tasks. The new solr-7 branch of the demo will install everything you need (including content!). If you are running an older version of Solr, use the solr-4 branch.
If you’d like to inspect the pieces individually, here they are:
- Federated Search Demo (GitHub)
- Search API Federated Solr Handbook
- Search API Federated Solr (Drupal.org)
- Search API Field Map (Drupal.org)
- Federated Search React (GitHub)
You can also find out more about Federated Search by watching Ken Rickard's DrupalCon presentation below. If you’d prefer a demonstration or consultation on getting started, just contact us and we’ll set up a time to chat.