You may also be interested in: ViewPoint for SharePoint
Editor's note: Contributor Alex Choroshin is a Sharepoint Team Leader at Bank Leumi. Follow him @choroshin
Since the Pipeline Extensibility is not restricted to any content source and the fact that you do not have a proper API, it makes it really hard to work with a specific Content Source.
Luckily for us we have a Crawled Property which is mapped to the managed property "ContentSource":
<CrawledProperty propertySet="012357BD-1113-171D-1F25-292BB0B0B0B0" varType="31" propertyName="315" />
You can include this in your extensibility configuration and you can see which content source the data came from and apply appropriate logic.
static void Main(string args)
XDocument inputDoc = XDocument.Load(args);
XElement outputElement = new XElement("Document");
//get Content Source from input file
string contentSourceName = GetContentSource(inputDoc);
if (contentSourceName == "My Content Source")
private static string GetContentSource(XDocument inputDoc)
var res = from cp in inputDoc.Descendants("CrawledProperty")
where new Guid(cp.Attribute("PropertySet").Value).Equals(new Guid("012357BD-1113-171D-1F25-292BB0B0B0B0")) &&
cp.Attribute("PropertyID").Value == "315"
This way we manage to apply our own logic for a specific Content Source.
Great answer by Mikael Svenson:
I would like to thank Jorge Einbund, a talented .NET developer for helping me with this post.
Hope you’ll find this post helpful