Custom Drupal Search Built with Search API + Database Search + Views

| Drupal Development | 126 seen

The default Drupal search function is pretty much OK, but if you are looking for ways to control and extend search behavior  - you are stuck with the default out-of-the-box search. 

I'll show you how you can boost your search functionality, by using just two (OK, three modules)

Download the following modules:

Download and extract them into the sites/all/modules folder

Enable Database search,  Search API, and Search views

Now we must add a search server and search index.

Let's start with Search server.

  • Go to admin/config/search/search_api

  • Click on Add server link

  • Give it a name - I prefer to call it as DB Server, if you wish, you can enter the Server description. Under the dropdown from Service, the class chose Database service. Click Create Server.

Now go back to admin/config/search/search_api - you should see - your newly created server as enabled, and index as disabled.

  • Click on the Edit button for the Default node index.

  • You must click the check box next to the Enabled button, and under Server, you must choose our newly created Server which we called DB Search (if you called it another way - you should see that name under drop-down box). Click Save settings.

We are almost there - before indexing items, as it will appear in the next window after you will click Save settings, let's add some fields to index.

  • Go to admin/config/search/search_api/index/default_node_index/fields

If you have made some custom changes to your Drupal site, like added custom fields, taxonomies e.t.c. and you would like them to be indexed in your search server - this is the place where to add fields to the search index. If you are OK with the default (Title and body) leave the settings intact.

Now let's index our nodes. You should configure cron, so items are indexed automatically, but if you want manually index your search server, go to admin/config/search/search_api/index/default_node_index

  • Click on Index now button to index 50 items, and repeat it, so all your content is indexed, if you have too many nodes, use a cron job.

Now we are ready to build our Search page.

Create a new View

Admin > Structure > Views > Add new view

  1. View name: Search
  2. Show: [the name of the Search index] (in the case of Default node index the default is "Default node index")
  3. Create a page [tick]
  4. Page title: Search
  5. Path: Search
  6. Display format: Unformatted list of Fields
  7. Items to display: 10, use pager

Continue & edit (the new View)

Format: Show: Fields | Settings

Fields: Title, Body

Filter criteria

  • Fulltext search: Expose this filter, Required, Remember the last selection, Use as search keys
  • Indexed Node: Status: Operator: Is one of, Value: Published

Sort criteria

  • Search: Relevance, descending (if you don’t have an order with fuzzy search you will get a PDO exception)

Page settings

  • Access: Permission: view published content

Advanced

  • No results behavior: Global: Text area “No results matched your search.”

Exposed form

  • Exposed form in block: Yes
  • Exposed form style settings: Submit button text: Search

Save the View. Add the exposed form block to a region.
Note that you will only receive results for partial matches that are longer than the minimum word length specified in the Index configuration.

It's up to you now, how are you going to format the display of your views page. As extra, you could add Facets to be displayed on the sidebar as well.

Here is the final search results page  I made for this site: https://www.reinisfischer.com/do_search?keyword=yerevan

Consider hiring me if you need help with Drupal website development

 

Latest articles

Berlin Zoo and Aquarium: One of the Best Things To Do in Berlin With Kids

At the start of April 2026, during our roughly five-day trip to Berlin, we finally visited the famous Berlin Zoo for the first time - or at least the first time I can actually remember. There is a chance my mom might have taken me here sometime in the early 1990s, but if so, those memories are long gone. This visit felt completely new, and…

Germany |

Berlin Brandenburg Airport

In April 2026, I had my first experience with Berlin Brandenburg Airport (BER) while flying the Riga–Berlin–Riga route with airBaltic. This was my first time using Berlin’s main international airport, and overall, it left a solid impression—modern, functional, and relatively easy to navigate. About a decade ago, I had the chance to travel through…

Germany |