Adding a new Content Type to Search

September 07, 2011 Digital Experience

With the release of 4.2 there are a lot of changes related to the Publishing System and the Search. They were focused mainly on the extensibility. Actually the search relies on the publishing system to process the data. There are inbound pipes which are responsible for pushing the data into the search pipe and then the search pipe is writing data in the Lucene search index. So how can you extend the search to support more types?  If  the type inherits/implements  Content  or IContent then you can add it using the built in content pipe like this :

var pipeSettings = (SitefinityContentPipeSettings)PublishingSystemFactory.GetPipeSettings(ContentInboundPipe.PipeName);
       pipeSettings.ContentTypeName = typeof(ListItem).FullName;
       pipeSettings.MaxItems = 0;
       PublishingSystemFactory.RegisterTemplatePipe("SearchItemTemplate", pipeSettings);

(This example registers a list  item type in the search template. )

 

This code actually adds another pipe in the default search index template. When you create a search index the new pipe will show up.

You can also implement a custom pipe and then add it like this to the search template.

The Progress Team