For those of you who implement Full-Text Indexing, aka Content Indexing; you may be aware of the MSDN article that talks about how to customize Full-Text Indexing to index additional properties: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wss/wss/_exch2k_customizing_full-text_indexing.asp. If you do know about it, you probably read it and thought, “Cool idea, but how does it help me?” Here is one example where this functionality solved a performance problem a customer was experiencing while searching for a contact.
This past November, I was notified that a customer was seeing poor performance when issuing a regular “Find” query against a Public Folder on an Exchange 2003 server that contained shared contacts and that the customer had implemented Full-Text Indexing. The customer wanted to know how to make these searches faster and why successive searches were not faster.
I informed the PSS engineer that when issuing a query against an Exchange Store without Full-Text Indexing, the Exchange Store uses cached restrictions. These cached restrictions are what allow the Exchange Store to execute successive queries faster then the original query. However, when Full-Text Indexing is deployed on a particular Exchange Store, that Exchange Store does not use cached restrictions when executing a Full-Text Index query due to the nature that the query is being performed by another process, the Microsoft Search process to be exact. That took care of half of the problem.
While investigating this problem, the PSS engineer noticed that when a query came in, only some of the requested properties were being passed onto the Full-Text Index query and it was suggested that if all the requested properties were indexed that it may fix the performance problem the customer was seeing. So I requested the help of a Store developer to better understand what was going on and it was discovered that the main reason for the poor performance while executing a search for a contact was because the Exchange Store was executing a separate query for the properties that the Full-Text Index had not indexed. This behavior was compounded by the fact that when a Full-Text Index query is made, cached restrictions are not used. The developer and I both agreed with the PSS engineer’s suggestion that if all the requested properties were indexed that the performance would increase.
After some trial and error and some further investigation done by the developer, the list of properties was finally defined. Here is the list of properties that should be specified while customizing a Full-Text Index to index the properties that Outlook uses when searching contacts:
The PSS Engineer helped the customer customize their Full-Text Index and the customer’s performance problem went away.
To read more about Content Indexing go to http://www.microsoft.com/exchange/techinfo/deployment/2000/BestIndexing.asp.