Consider the following scenario. By default, Exchange Search is enabled for a mailbox database in a Microsoft Exchange Server 2007 environment. You use Microsoft Outlook in online mode to search a mailbox for a keyword or phrase that contains a single letter or a single digit. In this scenario, you receive the following error message even though there are matches for the keyword in the mailbox:
No matches found for “keyword”.
Additionally, the following event is logged in the Application log on the mailbox server:
Event ID : 1025 Category : None Source : MSExchangeIS Mailbox Store Type : Warning Generated : <date> Written : <date> Machine : <computer> Message : An error occurred on database "<storage group/mailbox database>". Function name or description of problem: Content Indexing received an unusual and unexpect error code from MSSearch Error: 0x80041606
NOTE: 0x80041606 = QUERY_E_TOOCOMPLEX
This issue occurs because Exchange Search has a query restriction of 200,000 nodes. When a prefix search exceeds the query restriction, the search returns QUERY_E_TOOCOMPLEX. Therefore, 0x80041606 is logged as part of event ID 1025. By default, all searches that use Outlook online mode in an Exchange 2007 environment are prefix searches. If single digits or letters are used, this causes the system to search for all numbers or words that begin with the single digit or letter across the whole mailbox database. If the 200,000 nodes default limit is reached, the search returns the error.
Note The most common way to reach the 200,000 nodes limit is to search for a word or phrase that contains a single digit or letter. There are also other less common causes, such as entering very complex searches that have many AND, OR, and NOT operators. Additionally, complex combinations of date ranges and search terms, many entries in the To and From fields, or a combination of all these things may cause the limit to be reached.
To resolve this issue, install the following update rollup:
2608656 Description of Update Rollup 6 for Exchange Server 2007 Service Pack 3
Important This section, method, or task contains steps that tell you how to modify the registry. However, serious problems might occur if you modify the registry incorrectly. Therefore, make sure that you follow these steps carefully. For added protection, back up the registry before you modify it. Then, you can restore the registry if a problem occurs. For more information about how to back up and restore the registry, click the following article number to view the article in the Microsoft Knowledge Base:
322756 How to back up and restore the registry in Windows
After you install the update rollup, follow these steps to set the maximum number of query restriction nodes.
Note We recommend a start value of 1,000,000 (decimal):
In the Application log on the Exchange Server 2007 mailbox server, note how many times Event ID 1025 together with error code 0x80041606 occurred in the past month. This information will be used as a baseline to determine whether the MaxRestrictionNodes setting reduces or eliminates the issue.
Click Start, type regedit in the Start Search box, and then press Enter.
Locate and then click the following registry subkey:
Click Edit, point to New, and then click Key.
Type MaxRestrictionNodes, and then press Enter.
Click MaxRestrictionNodes, click Edit, select New, and then click DWORD (32-bit) Value.
Type Server, and then press Enter.
Note The registry entry should resemble the following:
Value Name: Server Value Type: REG_DWORD Value Data: 1000000 (Decimal)
Exit Registry Editor.
Restart the Microsoft Exchange Search Indexer service.
After you restart the Microsoft Exchange Search Indexer service, check the Application log for the following event IDs:
Event ID 130: Failed to convert the MailboxDB Guid read in from under the MaxRestrictionNodes registry key to a GUID
Event ID 131: Failed to open the MaxRestrictionNodes registry key
Event ID 132: Failed to set the MaxRestrictionNodes property in the indexer
If you are receiving any of these events, you may have entered the registry key or the DWORD value incorrectly. Or, you may not have spelled the new key or DWORD value correctly. Make the necessary corrections, and then restart the Microsoft Exchange Search Indexer Service. Search for any new instances of event IDs 130, 131, or 132.
Check the Application log either weekly or monthly based on the number of event ID 1025 messages that have error 0x80041606 in the Application log.
If you are still receiving a significant number of these events, you can increase the value incrementally to 2000000 (Decimal).
Do not increase the value beyond 2000000 (Decimal) without explicit direction from a Microsoft Support Engineer because doing this may reduce server performance.
Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.
For more information about Exchange Search, visit the following Microsoft website: