How to reset the Search Index in Exchange 2010 Search

Exchange 2010 has a built in search feature which allows you to quickly search for emails in your mailbox using Outlook (when Online), OWA, Exchange ActiveSync etc. Exchange 2010 search indexes items as soon as they are received by the Mailbox Database. So if you’ve just transitioned from Exchange 2003 to 2010, Exchange may not index items brought over from the Exchange 2003 server to the Exchange 2010 server. You may find that users using Exchange search may have issues searching for items that were in their mailbox before the transition. For example, you will not be able to find a pre-transition item using instant search but will be able to find them using ‘Advanced Find’ in Outlook.

To fix this issue, you will have to reset the search index to force the Exchange Search service to index all items in the Mailbox Database including items that were moved to the database from Exchange 2003.

To reset the search index, open up the Exchange Management Shell navigate to %PROGRAMFILES%\Microsoft\Exchange Server\V14\Scripts and then run the following command:

.\ResetSearchIndex.ps1 -force -all

You should see output that resembles the following:

WARNING: Waiting for service 'Microsoft Exchange Search Indexer (MSExchangeSearch)' to finish stopping...
MSExchangeSearch service stopped
Deleting catalog for Mailbox Database
removing: <location of catalogue>

MSExchangeSearch service Started

To verify that the rebuilding of the index has completed do the following:

  1. Add this counter to Perfmon: MSExchange Search Indices\Full Crawl Mode Status. This counter will be 0 before running ResetSearchIndex, go to 1 during the full crawl and then back to 0 after ResetSearchIndex completes.
  2. You will receive MSExchange Search Indexer Event ID 109 when the full crawl begins.
  3. You will receive MSExchange Search Indexer Event ID 110 when the full crawl ends.

You should now be able to search for pre-transition items using Exchange search.

  1. Am I right that AQS is not possible when running Outlook 2010 in online mode and so using “Exchange Search” ?
    Using “from: …” or “subject:…” does not function.
    Search in itself is functioning fine and fast but AQS cannot be used, right ?

    [Reply]

    John Reply:

    I believe you are correct. Searches are performed on the server not on the clients. If you run cached mode and are offline then Outlook will perform the search and should perform AQS searches.

    [Reply]

    marc Reply:

    MEanwhile I found that it is possible to get everything working by installing Windows Search (locally or on Citrix Server running Outlook 2010)
    Just make sure that there is no index built on the server. It should just use the Exchange 2012 index but all additional features of AQSyntax are available !

    [Reply]

  2. Nice and concise article helped me resolve my problem.
    Just to add a couple of references for others in case they find it useful:
    http://technet.microsoft.com/en-us/library/aa995966%28EXCHG.80%29.aspx
    Lastly to test if Exchange 2010 search is working correctly run the following script:
    $exdata = Get-MailboxServer | get-mailboxdatabase | Get-Mailbox -resultsize 3
    foreach($user in $exdata) {
    Test-ExchangeSearch -Identity $user
    }
    This will test 3 users from each database. You will receive an error if there is a problem with the search. If the results come back with results less than 5-8 seconds your exchange search is working well.

    Regards,
    Ivan Dretvic

    [Reply]

Leave a Comment

%d bloggers like this: