SharePoint Server Search Connector Framework

Microsoft SharePoint Server 2010 provides a new connector framework for connecting to and crawling content sources.

Applies to: SharePoint Server 2010

In this article
SharePoint Server 2010 Indexing Connectors
Database and Web Service Indexing Connectors
.NET Framework Assembly Connectors and Custom Indexing Connectors

The new connector framework is built on Microsoft Business Connectivity Services (BCS). Indexing connectors crawl, enumerate, and create a local index of content, and are composed of the following:

  • BDC Model File   Provides the connection information to the external system, and the structure of the data.

  • Connector   Provides the code that connects to the external system.

This topic provides information about the SharePoint Server 2010 indexing connectors, and how you can create custom indexing connectors to search external systems.

SharePoint Server 2010 Indexing Connectors

SharePoint Server 2010 provides with the following indexing connectors for searching external systems:

  • Lotus Notes connector

  • Exchange connector

  • Documentum connector

For information about how to install and configure these connectors, see Install Connectors (SharePoint Server 2010).

Database and Web Service Indexing Connectors

Business Connectivity Services provides Business Data Connectivity (BDC) service connectors that support connecting to databases and Windows Communication Foundation (WCF) or web services. This means that you can create indexing connectors for database and WCF or web service external content types without writing any code. You just create the model file for the indexing connector. For information about how to use Microsoft SharePoint Designer 2010 to do this, see How to: Create an External Content Type Based on a Web Service and How to: Create an External Content Type Based on a SQL Server Table.

.NET Framework Assembly Connectors and Custom Indexing Connectors

If your external system is not directly supported by Business Connectivity Services, you can expose your external system via Business Connectivity Services by writing your own BDC model file and connector.

If the external content types in the external system are static and do not change often, and have a small set of known types, you can write web services or .NET connectivity assemblies to expose the data from your external system. For more information, see Creating .NET Connectivity Assemblies and Web Services and How to: Create a .NET Connectivity Assembly.

If the external content type in the external system is dynamic, has custom types, and is large-scale, you should consider creating a custom connector assembly for that external system. For more information, see Differences Between Using the .NET Assembly Connector and Writing a Custom Connector and Creating a Custom Indexing Connector. To create the BDC model file for the custom connector, see How to: Use SharePoint Designer to Create a BDC Model File for a Custom Connector.

Search Properties in BDC Model Files

The BDC metadata model includes properties that support SharePoint Server search specifically. The following table describes these properties.

Table 1. Search properties for BDC model files

Name

Metadata Object

Description

ShowInSearchUI

Model

Specifies that an LobSystemInstance element in the model file should be displayed in the search user interface. This value is ignored for custom connectors.

InputUriProcessor

LobSystem

Specifies the name of the class that processes the input URL before passing it to the connector. Applies to custom connectors and the connectors that are included by default in Business Connectivity Services.

OutputUriProcessor

LobSystem

Specifies the name of the class that processes the output URL before passing it to the search system from the connector. Applies to custom connectors and default Business Connectivity Services connectors.

Title

Entity

Specifies the title of the external content type to display in search results.

DefaultLocale

Entity

Specifies the locale string. You can override this value by using the LCIDField property or the CultureField property.

RootFinder

Method

Specifies the Finder method to use to enumerate the items to crawl. For example, when connecting to a database, this could be the SELECT statement or the list of tables to crawl.

DirectoryLink

Method

Specifies that the BDC should navigate associations. Required for hierarchical crawling.

DeletedCountField

Method

Specifies the deleted count value. This property is ignored unless it contains an integer greater than zero.

WindowsSecurityDescriptorField

Method

Specifies the Windows Security descriptor for the item. If not specified, the GetSecurityDescriptor method is called. If the GetSecurityDescriptor is not defined, all External Items are assigned the Everyone access control list (ACL).

AuthorField

Method

Specifies the author name to display in search results.

DisplayUriField

Method

Specifies the URL to display in search results. If specified, this property overrides the profile page URL provided by the Business Connectivity Services. If not specified, the URL displayed in search results will start with bdc3://, and will not be understood by the browser.

LastModifiedTimeStampField

Method

Specifies the External Item's timestamp to display in search results. This value is also used for incremental crawling.

DescriptionField

Method

Specifies the description to display in search results.

LCIDField

Method

Specifies the locale ID (LCID) for the DescriptionField. If this is not specified, the default word breaker is used.

CultureField

Method

Specifies the culture for the DescriptionField.

Extension

Method

Specifies the file name extension for the crawlable stream. If not specified, the default extension is .txt.

MimeType

Method

Specifies the MIME type for the crawlable stream. If not specified, the default extension is .txt. If the Extension field and MimeType field are both specified, the value specified in the MimeType field is used.

UseClientCachingForSearch

Method

Specifies whether the crawler caches the content during enumeration. If the content is cached, then the crawler will not make another trip to the content source when it crawls individual items.

EnumerateIdsOnly

FilterDescriptor

Specifies whether to return IDs only in the IDEnumerator.

CrawlStartTime

FilterDescriptor

Contains the start time of the last crawl.

SynchronizationCookie

FilterDescriptor

Specifies that the external content source returns a cookie after a crawl, which is then resent by the indexing connector during the next enumeration call. The external content source uses the cookie to determine what has changed since the last crawl. This property is used with ChangedIDEnumerator and DeletedIDEnumerator method instances.

Property

TypeDescriptor

Specifies the struct array used by search for properties. Consists of the following:

  • PropertyName

  • PropertyValue

  • PropertyCulture

Text

TypeDescriptor

Specifies the struct array used by search for attachments. Consists of the following:

  • TextExtension

  • TextContentType

  • TextValue

See Also

Tasks

How to: Use SharePoint Designer to Create a BDC Model File for a Custom Connector

Concepts

Enhancing the BDC Model File for SharePoint Server Search

Creating a Custom Indexing Connector

Code Sample: MyFileConnector Custom Indexing Connector

How to: Crawl Associated External Content Types

How to: Crawl Binary Large Objects (BLOBs)

Item Level Security

Search Connector Framework Troubleshooting