Schema Class

Provides access to the property metadata management system for Enterprise Search.


Namespace:  Microsoft.Office.Server.Search.Administration
Assembly:  Microsoft.Office.Server.Search (in Microsoft.Office.Server.Search.dll)

[SharePointPermissionAttribute(SecurityAction.LinkDemand, ObjectModel = true)]
public sealed class Schema

The Schema class is the entry point for managing the Enterprise Search metadata schema for a Shared Service Provider's search service. To use the Schema object, you must do the following:

  1. Add references to your application for the following dlls:

    • Microsoft.SharePoint.dll

    • Microsoft.Office.Server.dll

    • Microsoft.Office.Server.Search.dll

  2. Specify the Shared Service Provider for the search service using the SearchContext object. For more information about ways to retrieve the search context, see How to: Return the Search Context for the Search Service Provider.

The following topics contain code samples demonstrating how to use the Schema object model to perform various metadata management tasks programmatically:

How to: Retrieve the Managed Properties for a Shared Services Provider

How to: Create a Managed Property

How to: Delete a Managed Property

How to: Retrieve the Crawled Properties for a Category in the Search Schema

How to: Retrieve the Crawled Properties Mapped to a Managed Property

How to: Map a Crawled Property to a Managed Property

The following code example writes out the full list of managed properties to the console window. For a complete, step-by-step walkthrough of this sample code, see How to: Retrieve the Managed Properties for a Shared Services Provider.


Ensure a Shared Service Provider is already created.

Project References

Add the following Project References in your console application code project before running this sample:

  • Microsoft.SharePoint

  • Microsoft.Office.Server

  • Microsoft.Office.Server.Search

using System;
using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.Office.Server.Search.Administration;
using Microsoft.SharePoint;

namespace ManagedPropertiesSample
    class Program
        static void Main(string[] args)
                //Replace <SiteName> with the name of a site using the Shared Service Provider.
                string strURL = "http://<SiteName>";
                Schema sspSchema = new Schema(SearchContext.GetContext(new SPSite(strURL)));
                ManagedPropertyCollection properties = sspSchema.AllManagedProperties;
                foreach (ManagedProperty property in properties)
            catch(Exception ex)

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Community Additions