How to Rebuild the Full-Text Index Catalog

Microsoft Exchange Server 2007 will reach end of support on April 11, 2017. To stay supported, you will need to upgrade. For more information, see Resources to help you upgrade your Office 2007 servers and clients.

 

Applies to: Exchange Server 2007, Exchange Server 2007 SP1, Exchange Server 2007 SP2, Exchange Server 2007 SP3

This topic describes two ways to rebuild the full-text index catalog, programmatically via an Exchange Management Shell script, and by manually deleting the full-text index catalog directory.

To programmatically rebuild the full-text index catalog, run the ResetSearchIndex.ps1 script provided at <drive>:\Program Files\Microsoft\Exchange Server\Scripts\.

To manually rebuild the full-text index catalog, stop the Microsoft Exchange Search Service, delete the old catalog, and then restart the service. This procedure forces the server to re-create the full-text index catalog.

Before You Begin

To perform the following procedures, the account you use must be delegated membership in the local Administrators group.

For more information about permissions, delegating roles, and the rights that are required to administer Exchange Server 2007, see Permission Considerations.

Procedure

To Rebuild the Full-Text Index Catalog Using the ResetSearchIndex.ps1 Script

  1. Start the Exchange Management Shell.

  2. Remove the index directories that are associated with specified mailbox databases:

    ResetSearchIndex.ps1 [-force]  <dbname> [<dbname>]
    
  3. Remove the index directories that are associated with all mailbox databases:

    ResetSearchIndex.ps1 [-force] -all
    

To Manually Rebuild the Full-Text Index Catalog

  1. Stop the Microsoft Exchange Search Service by running the following command:

    Net Stop MsExchangeSearch
    
  2. Delete the full-text index catalog directory.

    There are scripts located in the \Exchange Server\Scripts directory that can help you to administer and manage Exchange Search. Using the Exchange Management Shell, you can run the following scripts:

    • GetDatabaseForSearchIndex.ps1   When the index directory files are provided, this script returns the associated mailbox database names. Example script:

      GetDatabaseForSearchIndex IndexDirectoryName1 IndexDirectoryName2
      
    • GetSearchIndexForDatabase.ps1   This script returns index directories for the specified mailbox database names. Example script:

      GetSearchIndexForDatabase MailboxdatabaseName1 MailboxdatabaseName2 -All
      

      Note

      The directory name follows the convention CatalogData-<guid>-<guid> where the first <guid> is the GUID of the database, and the second <guid> represents the Instance GUID, which is used on a clustered mailbox server to distinguish between the nodes. The following is an example folder name: \CatalogData-b56624f3-bf19-4463-926f-d4705ac3dd08-cc64dd2d-2428-4f12-bba2-79d6d34c4d27
      The typical path for the .edb files and the catalog data directory is: C:\program files\microsoft\exchange server\mailbox\first storage group\

    You can use the following example to verify that you are targeting the appropriate catalog directory:

    GetSearchIndexForDatabase -All
    
  3. Start the Microsoft Exchange Search Service by running the following command:

    Net Start MsExchangeSearch