Windows Search 3.x

Windows Search is an indexing service and platform that provides fast search of files and data across different data sources and locations. Windows Search helps users and other applications find almost anything in e-mail messages, calendar appointments, photos, documents, and more. Additionally, Windows Search can return results from multiple data sources all in a rich Windows Explorer environment so your users can quickly preview, filter, and act on search results.

When first installed, the Indexer crawls most common user-facing files in the My Documents folder and Microsoft Outlook and Outlook Express email folders. Users and administrators can specify other locations to include or exclude as well. The scope of locations indexed is called the crawl scope and is represented by a set of URLs pointing to paths within a protocol (such as file:// for folders on a drive or mapi:// for MAPI email stores).

Items within the crawl scope are indexed in the search catalog, which contains information on both the content and the properties of indexed items. There are over 200 properties available inherently in Windows Search, like size or creation date. Furthermore, the property system is an open metadata system. This means you can extend the property system to handle new properties for new or existing file types.

Users can search within their crawl scope for text and properties, and Windows Search returns items that match their search criteria. The items are returned as as Microsoft ActiveX Data Objects (ADO) result sets. The results are presented and can be previewed without opening other applications and can be further filtered. You can create applications to intercept the search query, perform the search, and/or display the result set.

Extending the Index

You can extend Windows Search to index new data stores, new types of items, and new properties. You can do this by developing add-ins:

  • Property handlers enumerate, get and set properties of files for the Indexer. Use property handlers to extend the property set of a file type or to include a new file type.
  • Filters emit the content of files for full-text indexing for the Indexer. Use filters to include a new file type in the index.
  • Protocol handlers systematically crawl the nodes of a data store to extract relevant information to include in the index. Use protocol handlers when you want to index new data stores.

For more information on extending the index, refer to Adding Data to the Index

Querying the Index Programmatically

There are several ways to query the index programmatically:

  • Use the Windows Search OLEDB provider to query the index directly.
  • Use the ISearchQueryHelper interface to help build queries.
  • Use the search-ms protocol to form your queries.
  • Use Windows Search SQL to form your queries.
  • Use Advanced Query Syntax to form your queries.
  • Query the index remotely.

For more information on querying the index using any of these methods, refer to Querying the Index Programmatically.

Managing the Index

There are three sets of management APIs you can use to manage your index:

  • Search Manager
  • Catalog Manager
  • Crawl Scope Manager

For more information on managing the index, refer to Managing the Index.