Filtering File Properties


Indexing Service is no longer supported as of Windows XP and is unavailable for use as of Windows 8. Instead, use Windows Search for client side search and Microsoft Search Server Express for server side search.


The CiDaemon.exe process of Indexing Service filters file properties by calling the IFilter::GetChunk and IFilter::GetValue methods. Each chunk can have only one property. If the chunk is not ordinary text, it can originate from one of the following kinds of information:

  • Properties accessed through the Microsoft ActiveX IPropertyStorage and IPropertySetStorage interfaces. For example, the properties you see displayed when you right-click on a Microsoft Office file in a Web browser, or using Microsoft Windows Explorer, are properties from the Office Summary Information property set. The IFILTER_FLAGS_OLE_PROPERTIES flag tells the filter that ActiveX properties exist and should not be returned through the filter.
  • Properties accessed as internal value-type properties from files that treat some internal fields as value-type properties. For example, fields within a spreadsheet can be tagged with property set and property ID values to make them available for later searching. The IFILTER_INIT_APPLY_INDEX_ATTRIBUTES flag indicates that the client wants textual content retrieved as the values they are defined to represent. Examples of internal value-type properties are HTML tags like <TITLE> (which gets mapped into the "DocTitle" Office property set and property ID) and HTML anchor tags.

You can use the Microsoft Management Console (MMC) snap-in of Indexing Service to specify cached properties for the second category (internal, value-type properties). If this has been done, calls to the IFilter::GetValue method produce properties that are saved in the property store for the catalog that indexes these files. Certain well-known properties are cached for performance reasons. Cached properties can be displayed in query result tables and you can search for these properties using relational or regular expression queries (see Property-Value Queries for details).

You can also create file abstracts at this time if the IFilter interface implementation supports creation of such a summary. (See Creating Abstracts for more information). You can adjust the property cache through the MMC by right-clicking MyComputer and choosing Manage, then Server Applications. Then select Services and Indexing Service on Local Machine. The globally unique identifier (GUID) for the property set is in the first column and the property ID, either a number or string, is in the second column. Right-click on the guide to display the property menu and set the Cache check box to cache the property.

An example showing how to expose additional HTML <META> tag properties, how to make these properties available for comparisons, and how to show them in the search results table can be found in the HTMLProp sample in the code samples directory under IFilter.