You must implement your filter for full-text search. There is a file with its extension .sc , it contains xml and in one of the tags .doc file in binary representation. It is necessary that full-text search (filter inherited from IFilter) was searched by words in the attached document .doc.

Found that MS-SQL full-text search uses the same filters as Windows Desktop Search. I found an example of a filter on c ++ here , but it simply uses the already ready Adobe filter, and does not register its own as RarFilter . I also found this example on c # here , register it via regasm, add keys to the registry from the description , but the search does not return results, the filtdump utility throws out error code 0x80048014. I did not find more examples on filters, there are ready ones here , they are registered without problems.

How to implement your filter?

  • one
    "an example on c # ... I register using regasm" - and there is nothing to register, there is no implementation of IFilters, only a wrapper for calling IFilters from c # code. Generally In Windows 7 and later, filters are written. Filters MUST be written in native code ( from here ), i.e. writing a c # filter will not work (unless you try to write a native lib in c ++ that would call the code from the c # library, but in this case it would be more expedient to write directly to c ++). - i-one
  • @ i-one in c ++, my level is not very good, but an example of registering in c ++ would be fine or delphi could be used, - user2455111
  • I haven’t written anything for c ++ and delphi for a hundred years, and for com two hundred years (I once did shell extension for win98). I hope that the pluses or delphists will respond (added tags with ++ and delphi to the question). In general, it is approximately clear how to implement this - the filter must pass through the incoming stream xmlreader to the node with the .doc file, then you need to call the IFilter registered for .doc, pass it the stream to which the decoded .doc is submitted, and then your filter in theory, it should simply be a wrapper for office-IFilter, throwing calls to it. - i-one
  • @ i-one well, sort of started to work out, I got to the point where I determined the right tag and pulled out the data for .doc. Now you need to fasten the filter for parsing .doc - user2455111
  • In the example in c #, by the way, there is all this logic (how to call the filter for the .doc extension), only there the file processing is done (IPersistFile), and in an amicable way, streaming should be done (IPersistStream). - i-one

0