Federated Search in Windows
Federated Search in Windows

Describes Windows 7 support for search federation to remote data stores using OpenSearch technologies that enable users to access and interact with their remote data from within Windows Explorer.

This topic is organized as follows:

What is Federated Search?

Windows 7 supports the connection of external sources to the Windows Client through the OpenSearch World Wide Web link protocol. This enables users to search a remote data store and view results from within Windows Explorer. The OpenSearch v1.1 standard defines simple file formats that can be used to describe how a client should query the Web service for the data store and how the service should return results to be rendered by the client. Windows federated search connects to Web services that receive OpenSearch queries, and returns results in either the RSS or Atom XML format.

The following screenshot illustrates the search results obtained after remotely searching a Sharepoint.

Screen shot that shows search results from a SharePoint site as displayed in Windows Explorer.

Steps for Building Federated Search

To build federated search, perform the following steps:

  1. Enable your data store to be searched from Windows Explorer by providing an OpenSearch-compatible Web service that can return results in RSS or Atom format.
  2. Create an OpenSearch Description (.osdx) file that describes how to connect to the Web service and how to map any custom elements in your RSS or Atom XML.
  3. Deploy the search connectors to Windows client computers with an .osdx file.

The following diagram illustrates the steps for building federated search.

Diagram of the process for building federated search.

How Federated Search Works

Communication between Windows Explorer and your OpenSearch Web service is performed through the Windows Data Layer. The Windows Data Layer can communicate with different types of data stores through Windows Store Providers. Each provider specializes in communicating with data stores that support a particular protocol and have specific capabilities. The OpenSearch provider communicates with data stores that provide a Web service that supports the OpenSearch standard.

How Federated Search Works

To enable your data store to support federated search in Windows 7, you must perform a number of tasks. The following table lists tasks for enabling your data store, what is required to accomplish each task, and where to find documentation.

TaskRequirementDocumentation

Enable your data store to be searched by Windows Explorer.

Build an OpenSearch-compatible Web service.

Create an OpenSearch Description (.osdx) file.

Connecting Your Web Service in Windows Federated Search

Enabling Your Data Store in Windows Federated Search

Actively deploy your Web service to users within an enterprise.

Supply an .osdx file to your users: copy the .osdx file locally, and make it accessible to the user via a shortcut.

Deploying Search Connectors in Windows Federated Search

Enumerate search results in Windows Explorer in response to a query.

Implement a Web service that accepts a query string and returns results in RSS or Atom format.

Connecting Your Web Service in Windows Federated Search

Enable users to add your data store to their Windows Explorer.

Create an .osdx file, and supply it to your users.

Enabling Your Data Store in Windows Federated Search

Display your items as file-like items in Windows Explorer.

Return a URL to the file or content stream by using enclosure or media:content elements

Supply a file name extension or a MIME type that the client computer recognizes.

Enabling Your Data Store in Windows Federated Search

Display custom properties in Windows Explorer, beyond what is defined in RSS or Atom standards.

Provide additional metadata by using another XML namespace in your RSS/Atom output.

Add a property map to your .osdx file.

Creating an OpenSearch Description File in Windows Federated Search

Customize the properties that are displayed for your items in Windows Explorer.

Add proplist mappings to your .osdx file.

Creating an OpenSearch Description File in Windows Federated Search

Display a custom Web page view of your items in the preview pane.

Return distinct link and enclosure values.

Map a URL value to the System.WebPreviewUrl Windows Shell property.

Creating an OpenSearch Description File in Windows Federated Search

Display a command bar button in Windows Explorer that rolls the query over to your Web site.

Provide a Url format="text/html" template in the .osdx file.

Creating an OpenSearch Description File in Windows Federated Search

Sending Queries and Returning Search Results in RSS or Atom

When the user types a term into the search box in the upper-right corner of Windows Explorer, the query is sent to the OpenSearch provider, which then sends the query to the remote data store. The remote Web service responds to the query by providing results in an XML document, typically referred to as a feed, in one of two supported formats (RSS or Atom). Each result item in the feed includes XML child elements to represent or describe item metadata, such as the title, URL, description, thumbnail picture, and so forth. The OpenSearch provider is responsible for mapping the XML element values to Windows Shell system properties that can be used by Windows applications.

Additional Resources

Related Topics

Community Content

in the diagram above "Windows Data Layer" means...
Added by:Chris_Guzak
the "windows shell data model".

in native code this is IShellItem + IEnumShellItems OR IShellFolder + IEnumIDList (one layer lower)

in managed code this is expressed in the shell support in the Windows API codepack.
© 2010 Microsoft Corporation. All rights reserved.   Terms of Use | Trademarks | Privacy Statement
Page view tracker
Rate the Lightweight library
x
Lightweight builds on ScriptFree (loband) by adding features you've requested: a SearchBox and default code language selection.
Do you like the SearchBox?
Do you like the tabbed code blocks?
How useful is this topic?
Tell us more.
Thanks
x
You're helping to improve MSDN Online.
Feedback
Switch View
Classic
Lightweight Beta
ScriptFree
Switch View