Searches
Searches with Views
Basic searches based upon simple SQL-queries can be built easily with the help of the Drupal Views module. Create a regular View and add one or more exposed filters, for example a fulltext filter. The frontend needs to build a custom form for the search input and send the search input data as request query parameters to the view.
Search API
The Drupal extension module Search API constitutes a powerful framework for building searches. While out-of-the-box it comes with a database backend, there are many modules providing support for powerful Search solutions available, for example:
The Search API module provides configuration for the content to be indexed, including configuration for the indexed data (and its processing) on a per-field basis. The content gets indexed whenever it is changed, either instantly or delayed via Drupal's cron service (as configured). For more details, please refer to the Search API documentation.
Search API + Views
For building the actual Search page, again the Views module maybe be leveraged, by building a View with the Search API as query backend. Please refer to the module documentation for details on how to setup such a View. This might be a good option for simple searches.
Search API + Custom queries
A powerful alternative for building ambitious searches is to leverage the Search API module to index data to the search server and to have the frontend query the search server directly. That way, the frontend stays in control of the query and may make use of advanced search-server specific features in order to build a great, ambitious search experience!