Skip to content

Enable search indexing in Exchange Server

You like to enable search indexing on your Exchange Server. By default, Exchange Search is enabled for all new mailbox databases. The databases don’t require additional configuration. But, when you are migrating users to a new database, we recommend disabling the search index. Disable indexing on that specific database or entire Exchange server. In this article, you learn how to enable search indexing in Exchange Server.

Get Exchange search indexing status

First, let’s get the index status on each database. Run Exchange Management Shell as administrator.

Index Enabled shows False for database DB01 and DB02.

[PS] C:\>Get-MailboxDatabase | Select Name, IndexEnabled | Format-Table -AutoSize

Name IndexEnabled
---- ------------
DB01        False
DB02        False
DB03         True
DB04         True

If you have a Database Availability Group (DAG) configured, you want to list the databases, including the database copy.

The Get-MailboxDatabaseCopyStatus cmdlet will give you more information regarding the indexing.

[PS] C:\>Get-MailboxDatabaseCopyStatus * | Sort Name | Select Name, Status, ContentIndexState

Name       Status ContentIndexState
----       ------ -----------------
DB01\EX01 Mounted          Disabled
DB01\EX02 Healthy          Disabled
DB02\EX01 Mounted          Disabled
DB02\EX02 Healthy          Disabled
DB03\EX01 Mounted           Healthy
DB03\EX02 Healthy           Healthy
DB04\EX01 Mounted           Healthy
DB04\EX02 Healthy           Healthy

We have indexing disabled on more than one database. Let’s enable indexing on one of the disabled databases.

Enable Exchange search indexing

We want to enable indexing for DB01.

Note: Ensure you enable indexing on a database after working hours or at an off-peak time. It will take some CPU utilization on the server.

[PS] C:\>Set-MailboxDatabase "DB01" -IndexEnabled $true

Indexing is enabled on DB01. Let’s verify if everything went successful.

Check Exchange search indexing status

Give it a couple of minutes before checking the status.

[PS] C:\>Get-MailboxDatabaseCopyStatus * | Sort Name | Select Name, Status, ContentIndexState

Name       Status  ContentIndexState
----       ------  -----------------
DB01\EX01 Mounted           Crawling
DB01\EX02 Healthy FailedAndSuspended
DB02\EX01 Mounted           Disabled
DB02\EX02 Healthy           Disabled
DB03\EX01 Mounted            Healthy
DB03\EX02 Healthy            Healthy
DB04\EX01 Mounted            Healthy
DB04\EX02 Healthy            Healthy

If you have a DAG, the mounted database will show as Crawling.

Note: The Exchange Search indexes can crawl for a day or more, depending on the size of your database.

Look in Performance Monitor and select the MSExchange Search Indexes counter. Select Crawler: Mailboxes Remaining. Have a look at the mailboxes remaining status.

Read more: How to monitor Exchange database index state crawling »

In our example, the total shows as 0,000, which means that crawling is finished.

After the crawling finish, the database DB01 and the database copy will appear as Healthy.

[PS] C:\>Get-MailboxDatabaseCopyStatus * | Sort Name | Select Name, Status, ContentIndexState

Name       Status ContentIndexState
----       ------ -----------------
DB01\EX01 Mounted           Healthy
DB01\EX02 Healthy           Healthy
DB02\EX01 Mounted          Disabled
DB02\EX02 Healthy          Disabled
DB03\EX01 Mounted           Healthy
DB03\EX02 Healthy           Healthy
DB04\EX01 Mounted           Healthy
DB04\EX02 Healthy           Healthy

If the content index state changes from Crawling to Failed, read the article Repair failed content index in Exchange.

Conclusion

You learned how to enable search indexing in Exchange Server. It’s crucial to enable search indexing after working hours or at an off-peak time as it can impact performance.

Did you enjoy this article? You may also like Search and delete messages from Exchange user mailboxes. Don’t forget to follow us and share this article.

ALI TAJRAN

ALI TAJRAN

ALI TAJRAN is a passionate IT Architect, IT Consultant, and Microsoft Certified Trainer. He started Information Technology at a very young age, and his goal is to teach and inspire others. Read more »

This Post Has 2 Comments

Leave a Reply

Your email address will not be published. Required fields are marked *