Indexing Service Ifilters
Home | About Us | Products | Support | Contact Us | Library
What are Ifilters?
Ifilters are basically plug-in's for Indexing Service that tell Indexing Service how to Index (e.g.. read the content and properties) a type of file as determined by the files file extension. Indexing service calls the appropriate Ifilter for a file, when it comes across it during a sweep of a file system.
Ifilters are integrated into > Indexing Service using the Ifilter interface. They are normally written in C++ as they require rather low level programming, and C++ is designed for exactly that kind of work.
In reality an Ifilter is just a DLL file that contains the code necessary to tell Indexing Service how to handle a specific file type. This isn’t strictly true though as you could say that the Ifilter itself is responsible for extracting the content from the file in a round about way.
Do you really need a new Ifilter for that strange file type?
Indexing Service can still Index a file in most cases even if it does not have an Ifilter loaded for that file type.
If the file contains text content then there is a VERY good chance Indexing Service can still Index it. You do this by telling Indexing service to “Index files with unknown extensions”.
- Right click on your “My Computer” Icon and click “Manage”
- Expand out “Services and Applications”
- Right click on “Indexing Service” then click on “Properties”
- Tick the “Index files with unknown extensions” box
- Click “Ok”, then restart Indexing Service
Now Indexing Service will try to index pretty much every file it comes across.
Finding out which Ifilter DLL is used to filter a file type.
The following example, for HTML files, shows how to find the filter DLL for a document. Determine the persistent handler registered for an extension. Check to see whether the extension for the type of files that the DLL filters has a persistent handler registered under the registry entry.
\ HKEY_LOCAL_MACHINE \ SOFTWARE \ Classes.
\HKEY_LOCAL_MACHINE\SOFTWARE\Classes.htm
PersistentHandler
{EEC97550-47A9-11CF-B952-00AA0051FE20}
If this entry exists, skip to step 4 and use
\ HKEY_LOCAL_MACHINE \ SOFTWARE \ Classes
htmlfile
= Class for WWW HTML files
CLSID
= {25336920-03F9-11CF-8FD0-00AA00686F13}
Determine the persistent handler. Using
\ HKEY_LOCAL_MACHINE \ SOFTWARE \ Classes \ CLSID
{25336920-03F9-11CF-8FD0-00AA00686F13} = WWW HTML files PersistentHandler
= {EEC97550-47A9-11CF-B952-00AA0051FE20}
Determine the IFilter persistent handler GUID. Using
Let this be
\ HKEY_LOCAL_MACHINE \ SOFTWARE \ Classes \ CLSID {EEC97550-47A9-11CF-B952-00AA0051FE20}
= REG_SZ HTML File Persistent Handler
PersistentAddinsRegistered
{89BCB740-6119-101A-BCB7-00DD010655AF}
= REG_SZ {E0CA5340-4534-11CF-B952-00AA0051FE20}
Determine the filter DLL. Using