I know that Sitefinity does not not support searching of the document libraries out of the box, let alone doing full text search of their contents. So I am writing my own module (hopefully) to do this.
Looking at some of the examples and documentation, it looks like I would want to use an inbound pipe to tie into the publishing system to generate the index information for each document as they are saved (Using various libraries to parse the document and return the text contents). I think I have that mostly accomplished, but I'm missing something.
I have created the module, and registered it. My initialize code looks like this:
var mappingsList = PublishingSystemFactory.GetDefaultInboundMappingForContent();
var pipeSettings = (SitefinityContentPipeSettings)PublishingSystemFactory.CreateDefaultContentInboundPipeSettings(DocumentSearchInboundPipe.PipeName);
pipeSettings.PipeName = DocumentSearchInboundPipe.PipeName;
var definitions = PublishingSystemFactory.CreateDefaultContentPipeDefinitions();
var contentPipeSettings = PublishingSystemFactory.GetPipeSettings(DocumentSearchInboundPipe.PipeName);
contentPipeSettings.MaxItems = 0;
, contentPipeSettings, ps => ps.PipeName == DocumentSearchInboundPipe.PipeName);
The examples showed that last line as being the one that would add my inbound pipe to the list of options under creating a search index, but I do not get any new options there. Can anyone shed some light on how I get this in there?
Note: The InboundPipe I wrote essentially just returns the file's contents in the GetConvertedItemsForMapping method in each WrapperObject's Content field.
If anyone has any comments about my methodology here (This is the first thing I've written for Sitefinity), especially if I have just completely misunderstood how I should be doing this, please let me know! Like, for instance, if this would actually parse out each file in the documents library on EVERY search, that would be kind of bad... ideally I want to cache that in the search index, and I want the index updated on publishing events (Which is what I THINK I'm doing here...).