The following post describes a problem we had with a TFS instance where queries run against the description field where not returning any values.
Specifically, the "Contains" operation on system.description or on the user entered contents of the history fields was not working.
(on a side note, the following codeplex utility really helps doing queries much faster across multiple fields http://www.codeplex.com/searchworkitems)
In TFS the work item data in multi-lines field (plaintext or HTML) is kept in the WorkItemLongTexts table.
The search on those field is done by using a full text catalog.
The first thing we check was to make sure the Full-text search service and SQL agent was running. That was OK.
We knew the full text catalog was the issue because the when looking at the properties of TeamFoundationServer10FullTextCatalog showed that the item count was zero:
The good folk on the Microsoft TFS forums gave the answer on how to populate the index. Run the following SQL statement on your TFS instance for the full text index to be built:
USE TFSWorkItemTracking
GO
ALTER FULLTEXT INDEX ON [dbo].[WorkItemLongTexts] START FULL POPULATION
GO
This made the index populate but we found the root cause was that the TFS Agent job "TfsWorkItemTracking Full Text Crawl Job" was disabled (this is scheduled to run each 15 minutes). The reason why this is being investigated but the job was re-enabled.
Another note: the icon in SQL management studio showing a job being disabled is quite subtle, we noticed the problem by viewing it's history.