IFilter


An IFilter is a plugin that allows Microsoft's search engines to index various file formats so that they become searchable. Without an appropriate IFilter, contents of a file cannot be parsed and indexed by the search engine.
They can be obtained as standalone packages or bundled with certain software such as Adobe Reader, LibreOffice, Microsoft Office and OpenOffice.
It also refers to the software interface needed to implement such plugins.

How it works http://msdn.microsoft.com/en-us/library/ee805985%28v=vs.85%29.aspx [Windows Indexing Service documentation on MSDN]http://msdn.microsoft.com/en-us/library/aa965362%28v=vs.85%29.aspx [Windows Search Service documentation on MSDN]

An IFilter acts as a plug-in for extracting full-text and metadata for search engines. A search engine usually works in two steps:
  1. The search engine goes through a designated place, e.g. a file folder or a database, and indexes all documents or newly modified documents, including the various types documents, in the background and creates internal data to store indexing result.
  2. A user specifies some keywords they would like to search for, and the search engine answers the query immediately by looking up the indexing result and responding to the user with all the documents that contains the keywords.
During Step 1, the search engine itself doesn't understand format of a document. Therefore, it looks on Windows registry for an appropriate IFilter to extract the data from the document format, filtering out embedded formatting and any other non-textual data.

Search Engines

and the newer Windows Search, Windows Desktop Search, MSN Desktop Search, Internet Information Server, SharePoint Portal Server, Windows SharePoint Services, Site Server, Exchange Server, SQL Server and all other products based on Microsoft Search technology support indexing technology. Also, IFilters are used by SQL Server as a component of the SQL Server Full Text Search service.