El monstruito no soy yo, es el SharePoint

El Blog de Luis Mañez, dedicado a tecnologías MS, principalmente SharePoint y Office 365

SharePoint 2010: Accediendo al SearchServiceApplication por defecto de un Site

Si necesitas realizar ciertas operaciones con el buscador de SharePoint, de forma programática, como por ejemplo crear nuevos scopes de búsqueda, necesitarás obtener un objeto SearchServiceApplication.

En algunos ejemplos de internet, he visto un código como este:

   1: SPFarm myFarm = SPFarm.Local;
   2: SearchService mySearchService = 
   3:     myFarm.Services.GetValue<SearchService>("OSearch14");
   4: SearchServiceApplication mySearchServiceApp = 
   5:     mySearchService.SearchApplications.GetValue<SearchServiceApplication>
   6:         ("Search Service Application");

¿“Osearch14”?… ¿“Search Service Application”?

No sé vosotros, pero yo, cuando veo algún string “a piñón”, me entran los tembleques. Más aún, cuando en el caso de SharePoint, el “Search Service Application”, es el nombre que se le ha dado a la aplicación de servicio de búsqueda, y que no solo depende de cómo se haya instalado el servicio, sino que, en el caso de que se utilice el nombre por defecto que pone el asistente de instalación, también será diferente, según el idioma de la instalación.

Si lo que queremos, es conectarnos al servicio de búsqueda, del site en el que estamos trabajando, podemos hacer lo siguiente (partimos de un SPSite, que podemos recuperar del contexto de SharePoint, o abrir el sitio concreto):

   1: SearchServiceApplicationProxy proxy =
   2:             SearchServiceApplicationProxy.GetProxy(SPServiceContext.GetContext(site))
   3:                 as SearchServiceApplicationProxy;
   4:  
   5: SearchServiceApplicationInfo info = proxy.GetSearchServiceApplicationInfo();
   6:  
   7: return 
   8:     SearchService.Service.SearchApplications
   9:         .GetValue<SearchServiceApplication>(info.SearchServiceApplicationId);

De esta forma, estamos tirando del contexto, y no tenemos que “picar” ningún nombre concreto.

Espero que os sirva.

Saludos!!

Posted: 17/1/2012 8:25 por Luis Mañez | con no comments
Archivado en: ,
Comparte este post: