In today's tutorial, you will learn how to rebuild your Examine indexes in Umbraco V7. The default search provider that comes with Umbraco is called Examine. Under the hood, Examine uses a very popular search engine called Lucene. Out-of-the-box, when your install Umbraco it comes shipped with a public-facing index. For every published page, a corresponding entry within this index is also created. Sometimes things go wrong and the data in the index does not get updated correctly. When this happens you will need to rebuild the index, read on to learn how!
If you've never had a peek in your Umbraco's website's
config folder I recommend that you have a quick peek now. In there, you'll see two files,
ExamineIndex.config defines what gets indexed.
ExamineSettings.config has the Lucene to Umbraco integrate bits and bobs. The easiest way to rebuild the index is to go into the backend, go to the
settings tab, go to indexes and clear them. This is the recommended way, however, it is not the only way!
How To Manually Rebuild The Examine Index
If you look in
ExamineIndex.config you should see a number of indexes each with an
IndexPath defined. The
path defines the folder path where the index files are stored on the server. The manual way to rebuild your indexes is to go onto the server and delete everything contained with that folder from the drive. Note, you may need to perform an
IISRESET after you delete the index otherwise the website may act in an unexpected way. Granted deleting files manually isn't a very elegant approach, however, it works.
How To Rebuild The Examine Index In Code
If you can't easily access your server, for example, if you're using Azure, then you might want to rebuild your index on application start, or, via a custom page within the Umbraco backend. The code to rebuild a specific index is shown below:
To rebuild all the indexes, you can use this snippet:
If you are unsure on how to get Umbraco to run this code to run on application start, I recommend reading The Umbraco ApplicationEventHandler Explained. If you want to create a backend admin screen to clear the indexes, you can follow this tutorial.
That covers the three ways to clear the indexes, via the backend, manually and in code. Happy Coding 🤘