A lot of things are simple in Drupal ... once you know how.
The search module is a perfect example of something that is initially confusing to set up, but easy once you know how do it correctly.
This week we had several questions from our members about the Search module, so we wrote this tutorial to help them out. There are several confusing elements to Drupal's search module. Let's address them one-by-one:
Confusion #1: Indexing isn't instant
When you write a new content item for your Drupal site, it appears on your site:
However, when you search for the content, it can't be found:
So here's the first point of confusion: your content will not be indexed instantly after it has been added to the site.
Confusion #2: How to re-index the site
After users have tried and failed to find their new content, they often head to Configuration > Search settings. This is a logical step. Even when you visit this page, the information seems helpful.
In the image below, I see that there is 1 new item that needs to be indexed:
However, if you click the "Re-index site" button, it won't produce the result you helped for.
So that's the second point of confusion: Configuration > Search settings isn't very helpful.
The correct way to get your site's content indexed is to go to Configuration > Cron.
Drupal's Search module requires a cron job to run correctly.
Inside Configuration > Cron, click on the "Run cron" button.
Now the Search module will successfully index your new content:
Confusion #3: When cron runs
On the Configuration > Cron screen, you can tell your site to run cron regularly. This should index your content automatically, but it's not always easy to tell when this will happen.
The cron job will be triggered by the first users who visits your site after the time period is up. So, even if you have the cron set to run every 3 hours. it won't run until the next visitor arrives.
This is one reason why people can become confused by using the Search module on development sites where vistiors are rare.