Problem we were experiencing was that search functionality within OWA was not working correctly.
For example, even though you had an entry for say John Smith in your Contacts, search for John, Smith or John Smith would not produce any results. However, if you manually browsed through your Contacts you could find the contact in question. Similarly, even though there were multiple messages in the inbox sent from John Smith, search would not produce any results using any keywords.
It happened to what appeared to be a random group of people. After further investigation we’ve determined that all of the mailboxes effected by this issue resided in the same database.
You can run the below PowerShell command to get a list of all of the mailboxes stored in a particular database.
Get-Mailbox –Database DatabaseName
This prompted us to look into the catalog for this particular database. We have two Exchange servers in a DAG (Database Availability Group). CatalogData folder on the one of the Exchange servers was 4.4 GB in size, where the size of the catalog on the other Mailbox server was 125 KB.
Rule of thumb is that the size of the catalog should typically be anywhere between 5 and 10 percent of the size of the database.
First off, we failed wanted to fail over to the other server that appeared to have a “healthy” catalog. You can do that from the Exchange Management Console, by navigating to Organization Configuration, then Mailbox. Next, click on the Database Management tab.
Select the database you are having a problem with (in our example it’s DB04). DB04 is Active (and not working properly) on Exch2. Right click on it and select Activate Database Copy on Exch1.
To solve this problem we need to recreate the problem catalog. In order to do this we need to stop the Microsoft Search (Exchange) and Microsoft Exchange Search Indexer services. Next, you’ll want to delete (or rename) the old Catalog (CatalogData folder). Once the two services are started again, they’ll crawl the database and recreate the catalog.
After performing above actions search started working properly again for all of the previously effected users. Additional search related troubleshooting command are listed below.
Start the Exchange Management Shell and run it as Administrator.
You can test Exchange Search against the mailbox or a database using the following PowerShell commands:
Test-ExchangeSearch –MailboxDatabase DatabaseName
In the above example we are testing whether Search functionality is working properly for database DB04. The result came back is True, indicating that everything is in order.
Test-ExchangeSearch –Identity alias|username|email_address
Similarly, we’ve received a result of True when conducting the Exchange Search test against an alias m, whose mailbox resides in database DB07.
Lastly, command below will display the state of the Content Index for all databases on that particular Exchange server.