Registering third party IFilters in WSS/MOSS 2007

STEP 1: COM REGISTRATION

1.Add Registry key:
HKEY_CLASSES_ROOT\CLSID\<ComClassIdOfTheIFIlter\InprocServer32
                Default : <IFIlterDllPath>
                ThreadingModel : Both

STEP 2 : REGISTER IFILTER WITH OS

There are 4 steps to registering the filter-extension mapping with OS:

1. HKEY_CLASSES_ROOT\<.ext>\(Default) --> <TypeName>
2. HKEY_CLASSES_ROOT\<TypeName>\(Default) --> <StorageGUID>
3. HKEY_CLASSES_ROOT\<StorageGUID>\PersistentHandler\(Default) --> <PersHandlerGUID>
4. HKEY_CLASSES_ROOT\<PersHandlerGUID>\PersistentHandler\PersistentAddinsRegistered\IID_IFilter\ (Default) -->  <IFilterCLSID for .ext>

Now we're all set to regiter our product with WSS (Windows Sharepoint Services) or MOSS( Microsoft Office
Sharepoint Server).

STEP 3: REGISTER FILTER EXTENSION WITH MOSS

1. Add the filter-extension to the File types crawled:
   Start -> Program -> Microsoft Office Server -> SharePoint 3.0 Central Administration  -> <Name of SharedService Provider> -> Search Settings -> File Types -> New File Type (Add extension here)

2. Add the following registry keys:

 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office    Server\12.0 \Search\Applications\<Site>\Gather\Portal_Content\Extensions\ExtensionList]
        <add extension to the list>

 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office Server\12.0\Search\Setup\Filters\.ext]
        Default = (value not set)
        Extension = <ext>
        FileTypeBucket REG_DWORD = 0x00000001 (1)
        MimeTypes = <application>       

 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office
 Server\12.0\Search\Setup\ContentIndexCommon\Filters\Extension\.ext]
        Default REG_MULTI_SZ = IFIlter CLASSID

3. Finally, recycle the Search Service by executing the following command from the command window:

   D:\> net stop osearch

   D:\> net start osearch

-------------------------------------------------------------------------------------------------------------------------------------

If You're using WSS, follow these steps instead:

STEP 3: REGISTER FILTER EXTENSION WITH WSS

1. Add the following registry keys:
 
 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\Web Server  Extensions\12.0\Search\Setup\ContentIndexCommon\Filters\Extension\.<ext>]
        Default REG_MULTI_SZ = IFIlter CLASSID

 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\Web Server  Extensions\12.0\Search\Setup\Filters\.<ext>]
        Default = (value not set)
        Extension = <ext>
        FileTypeBucket REG_DWORD = 0x00000001 (1)
        MimeTypes = <application>

 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\Web Server Extensions\12.0\Search\Applications\<Site  GUID>\Gather\Search\Extensions\ExtensionList]
        <add extension to the list>

2. Finally, recycle the Search Service by executing the following command from the command window:

   D:\> net stop spsearch

   D:\> net start spsearch 

================================================================================

Note: An official document will follow shortly on MSDN.

Comments

  • Anonymous
    December 09, 2006
    PingBack from http://mikewalsh.bilsimser.com/PermaLink,guid,86062181-5bf1-42dc-8c70-0c6d66eef252.aspx

  • Anonymous
    January 23, 2007
    Any chance this walk through could be dummed down for the rest of us? I think I know what to do in step one.  I think I know what to do for part one of step 2, but from there on in I am lost lost lost. Thanks in advance for any advice.

  • Anonymous
    January 23, 2007
    Rob, are you using WSS or MOSS? Also, can you specifically point out which part you're having trouble with?

  • Anonymous
    May 04, 2007
    Hi, I am having real problems with pdf Ifilter (I have tried no others yet) I have WSS 3.0 The Extention List in the registry is replaced on every server re-boot thus eliminating my new pdf extention I can't figure out what is over-writing the registry any thoughts?  (much appreciated)

  • Anonymous
    May 04, 2007
    John, This is the first time someone reported this - can you please email me a screenshot of the reg key you're setting? -Deb.

  • Anonymous
    June 25, 2007
    hi I’m trying your beautiful code to create my own IFilter. I changed the dummy filter as you wrote in the comments. I registered the filter by using InstallUtil.exe and it looks good. (I’m running ‘ifilter explorer’ and my filter is there). The problem is, that the index service ignored the filter (it is not doing what I want it to do – for the test I returned dummy string as the document content) . I added a code to write a word to a text file in some methods to debug the filter. And the result is that if I’m putting the code in the constructor of the filter it succeeded, and writes a file. and if I’m putting the code into the method  InitializeChunks() or CreateChunks(), nothing happens. i will be very Grateful if you will help me to solve my problem. yossi d. yosss@otzar.co.il

  • Anonymous
    June 26, 2007
    Yossi, if you're referring to the IFilter skeleton posted by Marco, it should work. If it's possible for you to post a snippet of your code, I can take a look at it. regards, Deb.

  • Anonymous
    October 26, 2007
    "Note: An official document will follow shortly on MSDN" was such a document ever posted on MSDN (can't seem to find it)? thanks

  • Anonymous
    October 26, 2007
    Oleg, we haven't published the document yet. It's in the pipeline though.

  • Deb
  • Anonymous
    November 05, 2007
    Deb, what I would be looking for is the official documentation for what you describe under "STEP 2 : REGISTER IFILTER WITH OS". I have a hard time to locate this in the MSDN library. Could you please give me a pointer to the documentation how to register an IFilter for the Indexing Service? Thanks Stephan

  • Anonymous
    November 05, 2007
    Stephen, you can have a look at : http://msdn2.microsoft.com/en-gb/library/aa965717.aspx#filters_to_register HTH, Deb

  • Anonymous
    November 05, 2007
    Forgot to mention, WDS and indexing service uses the same registration model.

  • Anonymous
    November 05, 2007
    Deb, thanks, that looks exactly like what I was looking for. Regards Stephan

  • Anonymous
    February 14, 2008
    Hi all! I'm really at the end of my wits! I need to install IFilter on a Server with MOSS 2007 + SP1. All the standard directives are not working. I still have this message in the Crawl Log: The filtering process could not process this item. This might be because you do not have the latest file filter for this type of item. Install the corresponding filter and retry your crawl.

  • Anonymous
    February 14, 2008
    Hi, Just wondering: what is the IFilter's file type? Before you start debugging, do a restart of the server to ensure all processes pick up the new settings. (very rough but may help) Your message 'The filtering process could not process this item...' sounds like our support heard from a customer. (In this case it even crashed the indexing process & server...! That is very rare.) We found out the file was corrupted. Try to open the file in the application it was intended for. If the file is corrupt, the error you are experiencing is normal. If this is the case for only one file, tell the user to revive/fix the file or to delete it. It is something different if it happens to all files. In that case, going by your description, MOSS seems to know to try and load the IFilter DLL; only it is unable to find the DLL or related support files. You may try to add the folders where the DLL is located to the system path, you may need a reboot to activate this for all processes. Alternatively, try the IFilter test tools to see if the IFilter is okay and the system knows where to find it. These tools may be installed with your SharePoint (Deb, you know where?), also some tools are installed with our IFIlter: www.dwgifilter.com Good luck, Marco

  • Anonymous
    February 14, 2008
    it's the Adobe pdf ifilter (Adobe reader 8.0)

  • Anonymous
    February 14, 2008
    If you installed SP1 after making the registry changes in MOSS to work with Adobe PDF, then you need to change the registry entries again. We have a predefined GUID for the PDF filter and even if you changed the entry in MOSS prior to SP1 installation, SP1 reverts the registry to our predefined GUID. I'd take a look at installing PDF filters v.8 as mentioned in this blog, modify the registry entries again and then restart the search service. HTH, Deb.

  • Anonymous
    February 14, 2008
    no, it's not that. I installed sp1 previously. I also tried using Adobe 8 and 11 but still not working

  • Anonymous
    February 14, 2008
    After that change, anyway, something changed. Now files are still invisible but i don't have the warning in the crawl log

  • Anonymous
    June 17, 2008
    Anyone  knows if exists an I filter for ISO files? Thanks a lot, ga

  • Anonymous
    July 01, 2008
    Друзья! Поздравляю Вас с победой нашей сборной на Евро2008. Мы достойно выдержали это испытание и пусть Мы не чемпионы - все равно Мы лучшие! Россия ВПЕРЕД!!!

  • Anonymous
    March 24, 2009
    I'm following your steps to verify that the .msg iFilter is appropriately registered. Under HKCR I see the (Default) REG_SZ is set to Outlook.File.msg. Looking up this <TypeName> I see that the (Default) REG_SZ is 'Outlook Item' instead of a GUID. Any thoughts?