lunes, 26 de julio de 2010

Crear exclude crawling rules programmatically 2010

Hace unos días comentaba como crear exclude crawling rules en Microsoft Office SharePoint Server 2007 , hoy haremos lo mismo pero ahora con Microsoft SharePoint Server 2010.


1. Obtener el Search Context a partir del SPSite



SPServiceContext serviceContext = SPServiceContext.GetContext(site);



2. Obtenemos el proxy del application service de search (esto es nuevo en 2010, como sabemos ahora desaparecido el shared service provider y tenemos una nueva arquitectura de servicios de aplicación)



SPServiceApplicationProxy proxy = serviceContext.GetDefaultProxy(typeof(SearchServiceApplicationProxy));
SearchServiceApplicationProxy searchAppProxy = proxy as SearchServiceApplicationProxy;



3. Obtenemos el objecto de la aplicación de search


SearchServiceApplicationInfo ssai = searchAppProxy.GetSearchServiceApplicationInfo();
SearchServiceApplication application =
Microsoft.Office.Server.Search.Administration.SearchService.Service.SearchApplications.
GetValue(ssai.SearchServiceApplicationId);



4. Obtenemos el Content Source a partir del objecto SerchApplication



Content content = new Content(application);



A partir de aquí es bastante parecido a como trabajabamos con MOSS 2007.

5. Añadir la crawl rule a la colección de crawlrules del content source


CrawlRule crawlRule = content.CrawlRules.Create(CrawlRuleType.ExclusionRule, "http://*/forms/*");



6. Añadir propiedades



crawlRule.FollowComplexUrls = true;



7. Commit la regla en la base de datos



crawlRule.Update();

No hay comentarios: