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 index view could be configured to have a Custom Elements Page
display and with that configuration a custom elements search endpoint is
available. (see Lupus Decoupled Views)
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!
Listings, Views
The Lupus Decoupled Views submodule provides support for Drupal's Views module. The Views module is Drupal's native way and very powerful way of creating listings of content. It provides a UI for configuring complex queries, searches and the rendering of results, including paging.
JSON-API & GraphQL
When data needs to be queried or updated from the frontend, Drupal offers plenty of options. Lupus Decoupled Drupal's provided API may be combined with any of these: