Microsoft Exchange Server 2010 : Managing Data and Database Availability Groups - Content Indexing

2/22/2014 8:56:49 PM

Content indexing is a built-in Exchange feature. Every Exchange server in your organization supports and uses some type of indexing. To manage indexing more effectively, use the techniques discussed in this section.

Understanding Indexing

Content indexing enables fast searches and lookups through server-stored mailboxes and public folders. Exchange Server supports two types of indexing:

  • Standard indexing with Exchange Search

  • Full-text indexing with Exchange Store Search

The Exchange Server storage engine automatically implements and manages Exchange Search. Exchange Search is used with searches for common key fields, such as message subjects. Users take advantage of Exchange Search every time they use the Find feature in Microsoft Office Outlook. With server-based mail folders, Exchange Search is used to quickly search To, From, Cc, and Subject fields. With public folders, Exchange Search is used to quickly search From and Subject fields.

As you probably know, users can perform advanced searches in Office Outlook as well. In Office Outlook 2010, all users need to do is click in the Search box or press Ctrl+E to access the Search tools, click Search Options, and then click Advanced Find. In the Advanced Find dialog box, users can enter their search parameters and then click Find Now. When Exchange Server receives an advanced query without Exchange Store Search, it searches through every message in every folder. This means that as Exchange mailboxes and public folders grow, so does the time it takes to complete an advanced search. With standard searching, Exchange Server is unable to search through message attachments.

With Exchange Store Search, Exchange Server builds an index of all searchable text in a particular mailbox or public folder database before users try to search. The index can then be updated or rebuilt at a predefined interval. Then, when users perform advanced searches, they can quickly find any text within a document or attachment.


Full-text indexes work only with server-based data. If users have personal folders, Exchange Server doesn't index the data in these folders.

A drawback of Exchange Store Search is that it's resource-intensive. As with any database, creating and maintaining indexes requires CPU time and system memory, which can affect Exchange performance. Full-text indexes also use disk space. A newly created index uses approximately 10 to 20 percent of the total size of the Exchange database (and is directly related to what's in the database's mailboxes). This means that a 1-TB database would have an index of about 100 to 200 GB.

Each time you update an index, the file space that the index uses increases. Don't worry—only changes in the database are stored in the index updates. This means that the additional disk space usage is incremental. For example, if the original 1-TB database grew by 1 GB, the index could use up to 201 GB of disk space (up to 200 GB for the original index and 1 GB for the update).

Managing Exchange Store Search

Exchange Server 2010 doesn't allow administrators to configure how indexing works. With Exchange Server 2010, the Microsoft Search (Exchange) service provides the Exchange Store Search of databases, and Microsoft Exchange Search provides search services. These services provide automated Exchange Store Search.

Full-text indexes are stored as part of the Exchange data files. Because of this, whatever folder location you use for Exchange data files will have a CatalogData-<GUID> subfolder for each database, which contains all the Exchange Store Search data for the related database and all its related databases. By default, you'll find full-text index files for a database in the %SystemDrive%\Program Files\Microsoft\Exchange Server\V14\Mailbox\DatabaseName\CatalogData-<GUID> folder.


Exchange maintains full-text indexes as part of the database maintenance schedule.

Each database has an index. If you make a database copy, you are also making an index copy. There's often no need to rebuild an index. That said, as part of the recovery process for a mailbox or public folder database, you might want to rebuild the related full-text index catalog to ensure it is current. You might also want to rebuild the full-text index after you've made substantial changes to a database or if you suspect the full-text index is corrupted.

You can rebuild an index manually at any time. Exchange Server rebuilds an index by re-creating it. This means that Exchange Server takes a new snapshot of the database and uses this snapshot to build the index from scratch. To manually rebuild an index, follow these steps:

  1. Log on to the Exchange server using an account with administrator privileges.

  2. Open an administrator command prompt.

  3. At the command prompt, stop the Microsoft Exchange Search service by typing net stop MsExchangeSearch.

  4. Use Windows Explorer to delete the CatalogData-<GUID> subfolder, which contains the full-text index for the database.

  5. At the command prompt, start the Microsoft Exchange Search service by typing net start MsExchangeSearch.


Alternatively, you can use the ResetSearchIndex.ps1 script. This PowerShell script accepts the name of the database you want to work with as an input parameter. To get started, enter cd $env:ExchangeInstallPath\Scripts, then run the script by entering .\ResetSearchIndex.ps1 followed by the name of the database, such as .\ResetSearchIndex.ps1 EngineeringMailboxDb.

Exchange Discovery relies on Exchange Store Search for databases and mailboxes within databases. You can enable or disable indexing for individual databases by setting the -IndexEnabled parameter of the Set-MailboxDatabase cmdlet to $true or $false, respectively. The following example disables indexing of the Engineering database:

Set-MailboxDatabase "Engineering Database" -IndexEnabled $false

When you disable indexing of a database, you also prevent the Exchange 2010 Discovery feature from returning messages from the database or server.

You can disable indexing for all databases on a server by stopping and disabling the Microsoft Exchange Search service. Here's an example using the Exchange Management Shell where you stop and disable the Exchange Search service on a remote server named Server18:

Stop-Service MSExchangeSearch -ComputerName Server18

Set-Service MSExchangeSearch -StartupType Disabled -ComputerName Server18

You can enable indexing for all databases on a server by enabling the Microsoft Exchange Search service for automatic startup and starting the service. An example using the Exchange Management Shell follows:

Set-Service MSExchangeSearch -StartupType Automatic
-ComputerName Server18

Start-Service MSExchangeSearch -ComputerName Server18
When you disable indexing on a server, you also prevent Exchange Discovery for all databases on the server.
  •  Microsoft Exchange Server 2010 : Creating and Managing Database Availability Groups (part 5) - Switching over Servers and Databases
  •  Microsoft Exchange Server 2010 : Creating and Managing Database Availability Groups (part 4) - Configuring Database Availability Group Properties
  •  Microsoft Exchange Server 2010 : Creating and Managing Database Availability Groups (part 3) - Managing Database Availability Group Networks
  •  Microsoft Exchange Server 2010 : Creating and Managing Database Availability Groups (part 2) - Managing Availability Group Membership
  •  Microsoft Exchange Server 2010 : Creating and Managing Database Availability Groups (part 1) - Creating Database Availability Groups
  •  Microsoft Exchange Server 2010 : Navigating the Information Store (part 2) - Improving Availability, Introducing Active Manager
  •  Microsoft Exchange Server 2010 : Navigating the Information Store (part 1) - Using Databases, Understanding Database Structures
  •  Byod – Good Or Bad Or Unknown?
  •  Windows 7 : WORKING WITH THE FIREWALL (part 6) - Using the GPO Technique - Adding a New Application Rule, Removing an Application Rule
  •  Windows 7 : WORKING WITH THE FIREWALL (part 5) - Using the GPO Technique - Obtaining a List of Rules
    Video tutorials
    - How To Install Windows 8

    - How To Install Windows Server 2012

    - How To Install Windows Server 2012 On VirtualBox

    - How To Disable Windows 8 Metro UI

    - How To Install Windows Store Apps From Windows 8 Classic Desktop

    - How To Disable Windows Update in Windows 8

    - How To Disable Windows 8 Metro UI

    - How To Add Widgets To Windows 8 Lock Screen

    - How to create your first Swimlane Diagram or Cross-Functional Flowchart Diagram by using Microsoft Visio 2010
    programming4us programming4us