Sitecore 6 client search is built for extensibility and the most common scenario is to customize result categorization.
We ship with a number of default categories common for all Sitecore solutions - content items, media items (split into images and documents), layouts, system and user templates, workflows, etc.
Each solution or module, however, has its own inherent categories. Solutions benefit from content categories like news, customers and partners. Modules have distinct item types: RSS feeds, mailing lists.
All these categories can be setup in a declarative manner. There is a new section in web.config named search, which includes the categorizer definition:
<categorizer type="Sitecore.Pipelines.Search.CategorizeResults+Categorizer, Sitecore.Kernel">
<Categories hint="raw:AddCategory">
<category path="/sitecore/content"/>
<category displayName="Images">
<templateID>{F1828A2C-7E5D-4BBD-98CA-320474871548}</templateID>
<templateID>{DAF085E8-602E-43A6-8299-038FF171349F}</templateID>
<templateID>{C97BA923-8009-4858-BDD5-D8BE5FCCECF7}</templateID>
<templateID>{EB3FB96C-D56B-4AC9-97F8-F07B24BB9BF7}</templateID>
</category>
<category displayName="Documents">
<templateID>{16692733-9A61-45E6-B0D4-4C0C06F8DD3C}</templateID>
<templateID>{777F0C76-D712-46EA-9F40-371ACDA18A1C}</templateID>
<templateID>{7BB0411F-50CD-4C21-AD8F-1FCDE7C3AFFE}</templateID>
<templateID>{0603F166-35B8-469F-8123-E8D87BEDC171}</templateID>
<templateID>{3DB3A3CA-A0A9-4228-994B-F70C8E99A1CE}</templateID>
<templateID>{2A130D0C-A2A9-4443-B418-917F857BF6C9}</templateID>
<templateID>{F57FB07D-332A-4934-AA67-0A629C5396E2}</templateID>
<templateID>{CC80011D-8EAE-4BFC-84F1-67ECD0223E9E}</templateID>
</category>
<category path="/sitecore/media library"/>
<category path="/sitecore/layout/devices"/>
<category path="/sitecore/layout/layouts"/>
<category path="/sitecore/layout/sublayouts"/>
<category path="/sitecore/layout/renderings"/>
<category path="/sitecore/layout"/>
<category templateIDs="{455A3E98-A627-4B40-8035-E683A0331AC7}" displayName="Template Fields"/>
<category templateIDs="{E269FBB5-3750-427A-9149-7AA950B49301}" displayName="Template Sections"/>
<category path="/sitecore/templates/branches"/>
<category path="/sitecore/templates/system" displayName="System Templates"/>
<category path="/sitecore/templates"/>
<category path="/sitecore/system/aliases"/>
<category path="/sitecore/system/languages"/>
<category path="/sitecore/system/workflows"/>
<category path="/sitecore/system"/>
<category path="/sitecore/content/applications/control panel" database="core"/>
<category path="/sitecore/content/applications" database="core"/>
</Categories>
</categorizer>
The syntax is fairly self-explanatory. Declarative categories can be setup either using item path or template IDs. Whichever category matches first wins, so the more specific categories (Images and Documents) should go before the generic ones (Media Library).
It's important to understand that categories do not affect the indexes, but only how the results are grouped in the UI.
To setup a content category such as news: <category path="/sitecore/content/home/news" />. Make sure to add this line above the /sitecore/content category.
To setup a template category: <category templateIDs="{id-of-the-rss-feed-template}" displayName="RSS Feeds" />. Again, this category should go before the default ones.
This post is a part of series about new client search introduced in Sitecore 6:
Part 1: Overview
Part 2: Categorization
Part 3: Custom Search Results