Information for: DEVELOPERS   PARTNERS

Using the Search API module

Note

  • These instructions are intended for Drupal 7. For Drupal 8 and greater information, see our Modules for Search documentation.
  • Acquia Search may experience downtime when servers are rebooted for security reasons.

As an alternative to using the Apache Solr Search Integration module, Acquia Search supports using the Search API module. For most Drupal 7-based websites, we recommend that you use the Apache Solr Search Integration and related modules instead. Based on our extensive experience helping Acquia Search customers with both the Apache Solr Search Integration module and the Search API module, we have found that using the Apache Solr Search Integration module results in a search solution that is more scalable, better performing, better integrated with Apache Solr, and easier to configure and maintain.

Best practices for using Search API

The biggest thing to consider, if you choose Search API, is the time it takes to learn how to configure the module as intended. Since Search API has such extensive configuration options, mistakes are more common. When you consider scaling a website you must make conscious choices.

For example:

  • Never do any text processing in Drupal. For example, the Search API processors, such as stopwords and synonyms, can be configured in Solr itself.
  • Ensure you understand the memory footprint of the search page, and that the page is consistent with your server resources and configuration. Consider that search is a random result based on user input. When you use views and view modes to render your search results, you should either use the Solr fields to theme, or ensure your cache is large enough and your server is fast enough to render the entities returned on the search page. Entity caching makes a huge difference.
  • Multisite searching in Search API (not multi-index searching, which is called search_api_multi) is difficult to achieve due to the architecture of Search API. The main intention wasn’t to display content not relying on entities in the current website. Multisite can mean Drupal multisite, or a combination of Drupal websites with a different codebase.