Archivo de la categoría: SharePoint Search

Modificar la propiedad NoCrawl de un campo

Se me plantea la necesidad de modificar un atributo NoCrawl, de un campo de una lista creada en base a una plantilla de lista… es algo muy sencillo, aunque parezca un trabalenguas 🙂

El atributo NoCrawl a nivel de SPField, indica si dicho campo puede ser reastreado por el buscador (a través de un valor buleano: TrueFalse), aqui tienes toda la informacion con respecto a esta propiedad.

En este caso, lo que se quiere es que el buscador reastee contenido almacenado en un campo, que tiene el atributo NoCrawl = True. Cambiar esto a través del modelo de objetos es una labor muy sencilla, aqui teneis un ejemplo de como podriamos modificarlo.

using (SPWeb oWebsite = SPContext.Current.Site.AllWebs["MiSitio"])
{
    SPList oList = oWebsite.GetList("Lists/Announcements/AllItems.aspx");
    SPFieldCollection collFields = oList.Fields;
    SPField oField = collFields.GetField("MiColumna");
    oField.NoCrawl = true;
    oField.Update();
    oList.Update();
}

Hay que tener en cuenta, que si quieres modificar esta propiedad en varias listas de la misma coleccion de sitios, deberas primero recorer y almacenar cual van a ser las listas que has de modificar, y posteriormente modificarlas o de lo contrario SharePoint te dará un error, ya que se esta haciendo una llamada al metodo Update de la lista…