What does it do?

This module provides a framework for easily creating searches on any entity known to Drupal, using any kind of search engine. For site administrators, it is a great alternative to other search solutions, since it already incorporates facetting support and the ability to use the Views module for displaying search results, filters, etc. Also, with the Apache Solr integration, a high-performance search engine is available for this module.

Developers, on the other hand, will be impressed by the large flexibility and numerous ways of extension the module provides. Hence, the growing number of additional contrib modules, providing additional functionality or helping users customize some aspects of the search process.

Examples & Demo

The prime example of a site using this module is drupal.org itself – the Search API, along with the database backend and Views, is used to generate the issue queue listings.g

Note on security

In general, the Search API doesn't provide any kind of access restrictions (as this cannot be done on a generic level). It is therefore your responsibility to take care that only accessible items are indexed or results displayed (e.g., by using appropriate filters).
There is, however, built-in support for node access checks via the Node access data alteration (q.v. for details). Also, the Search views module contains an option to do additional access checks on all entities in search views.

Additional modules

At the moment, this project contains, apart from the core API module, the following extension modules:

Search views

(Drupal 7 only)
This module integrates the Search API with the Views module, allowing searches on any index to be created and viewed via Views. All of an entity's properties, as well as those of related entities (e.g. a node's author's name), are available as fields, filters and arguments for all indexed fields are available and sorts (as well as click sorts) can be created on any indexed single-valued field. Also some additional features, like linking the results to the entity, are available.
For Drupal 8, Views integration is incorporated directly into the Search API module itself, it's not necessary to enable another module.

Search facets

(Drupal 7 only)
This module provides integration with the popular Facet API module to allow facetting on any search executed with the Search API, be it a search page, a view or any other source.
However, the feature is only supported by some backends – cf. the list of backends supporting the search_api_facets feature.

Database search

(Drupal 8 only)
This module provides a ready-to-use search backend that indexes and searches content using Drupal's own database. It is mainly meant for testing purposes and for smaller sites, larger sites will usually want to use a more powerful backend (like Solr or Elasticsearch). Also provided is the "Database Search Defaults" module which provides a complete pre-configured content search when installed.
For Drupal 7, this module is located in its own project.

Tutorials and screencasts

A number of tutorials and screencasts are linked in the handbook. Especially the latest screencasts from DrupalCon sessions might provide a good introduction to the module.

Other available backends and extensions

You can find a list of available extension modules in the handbook.

Requirements

Drupal 7 only: You will have to download and enable the Entity API module to use the Search API.
To use the Views integration, you'll (of course) also need the Views module. For facets, you'll need the Facet API module (moved to Facets in Drupal 8).
Furthermore, you'll need to enable at least one module that provides a search backend.

Information for developers

Extensive documentation for other developers, who might want to extend the framework's capabilities themselves, is available. It is partly included in the module itself (in search_api.api.php, in README.txt and directly in the relevant classes and interfaces) and partly in the online documentation (linked in the sidebar).
If you are trying to implement some extension and are stuck, please don't hesitate to ask in the module's issue queue. Please also add your module to the list of extension modules once it's finished, if it is generally useful.

All developers working in the Search API ecosystem are advised to keep an eye on #1188562: [meta] Important project announcements and the module's change records for important updates. (Could also contain useful information for site builders.)
Also, you can find us in the #search channel on Slack.

Sponsors

If you are interested in sponsoring a particular feature or new related module, please contact drunken_monkey. He is also available for consulting and custom development.

Supporting organizations: 
Major sponsor of the Drupal 8 port and some additional work on the module.
Funded initial development of the module (in 2010) and several additional improvements (in 2011).
Sponsored a lot of additional functionality and bug fixes for the module.
Sponsored a sprint to port the module to Drupal 8.
Sponsored a sprint to port the module to Drupal 8.

Project information

Releases