One of the things I like about Vista and Windows 7 is the way search has been integrated into almost every part of the interface. Sure it’s not something you immediately start using, but for me at least it’s really grown into something that I use more than once a day to help find information and save me time.
On top of the ability to search the local disk, one of the great things about the Vista/2008/7/R2 windows family is the ability to federate search across a number of sources.
What does that mean? Search federation allows Windows to query against remote data stores without the need to index those locations itself. Imagine that you wanted to search your SharePoint sites for a document, and you wanted to do it from within Windows. One way to do this would be to get Windows to index all of the SharePoint content and keep its own index. That’s not very efficient though, if there is more than one computer each one would need a copy, so in an enterprise that’s a whole lot of duplication.
With federated search you enter your search query in one place, in this case Windows, and that query is then forwarded on to the other systems which have indexed content. They then execute the query against their own index and send back the results. Those results are then displayed back in the original application as if they were searched and indexed locally. The benefit of this is that it’s much more efficient, each source can have it’s own index and search tool (provided it supports federation of searching) and only the query and results are passed over the network.
So, how do we make use of this? Well Windows 7 supports search federation in the form of OpenSearch. Fortunately quite a few different search engines support this, but for the sake of this post I’ll use SharePoint as I’m guessing that one of the more common data sources people will want to search.
What it looks like
Before I get into how this can be setup and configured, here’s a screenshot of what it looks like in action:
This is a screenshot from Windows Explorer on a Win7 a test machine I was using today. First you can see that there’s an addition to the Favourites for your new search. When you enter something into the search box, the results from the SharePoint location are returned directly into Explorer Window. If you select one of the files and have the preview pane turned on you get a live preview of the document (the preview pane is something else I really find useful!).
In addition to the view above, you can pin your new search to the bottom of any other results… but more on that later.
So how do you set this up? Well there’s the manual setup and an automated setup using Active Directory Group Policy.
The Manual Way
For manually setting up a new search location you can create a new OpenSearch Description file which you can then double click to install. An OpenSearch Description file (.osdx) is an XML document that tells Windows where to send the search terms and how the results should be formatted. These are fully document here, but I’ve included an example below:
When you double click on this .osdx file, Windows uses the information it contains to create two new files. The first is a Search Connector (a .searchconnector-ms file) in the “%userprofile%/searches” directory, and the second is a shortcut to it in the “%userprofile%/links” directory. It’s this shortcut that appears in the ‘Favorites’ folder in to Screenshot above.
The Automated Way
The simplest way to deploy the new search settings out to a number of computers is though Group Policy.
As the search config is stored within the Search Connector, all you need to do is deploy the .searchcconnector-ms file and shortcut out to your target computers. There are a few ways to do this, but personally I’d use Group Policy Preferences. This will give you a good level of control over the targeting of the files, and easily allow you to adjust the settings over time. You could also use things like logon scripts.
You can configure Group Policy Preferences to deploy files with the User Configuration > Preferences > Windows Settings > Files area of a GPO. You’ll have to do this as a user based policy as the files must be copied into the User Profile, if you copied the files as a computer policy it would apply before a user was logged on so they would end up in the wrong place.
Within the Files Preferences, you have to specify a source file location and a target location. For the source location I would tend to use the Netlogon share for your domain (//domain.com/netlogon/) as a copy will be on every domain controller and usually therefore local to the end users. The target locations should be the same as those described in the manual steps above:
Search Connector: %userprofile%/searches/File.searchconnector-ms
As well as the source and target info, you also need to set a few of the other options. The first is ‘Run in logged on user’s security context (user policy option)’ as this will ensure that the file is copied in context of the user logging on.
You may also wish to consider whether to set the ‘Remove this item when it is no longer applied’ options so that the files are removed if you decide to remove the policy.
Adding Links to Your Search Connector
Following the steps above will add your new search location into the Favourites folder and allow you to search against it. You can however also add your new Search Connector to both the ‘Search Again’ links that appear at the bottom of any search results, and to the Start Menu. This is done by configuring the ‘Pin Libraries or Search Connectors to the ‘Search Connectors’ to the ‘Search Again’ links and the Start Menu’ Group Policy that can be found within the User Configuration > Policies > Administrative Templates > Windows Components > Windows Explorer area.
I hope this has been useful!