Pregunta

Estoy desarrollando una búsqueda de SharePoint con su propia fuente de contenido. Y tengo mis propiedades de rastreo y mis propiedades administradas y mapeo entre ellas en consecuencia. También tengo propiedades dinámicas, por ejemplo, el usuario puede cambiar el conjunto de propiedades a rastreo, por lo tanto, lo hago en tiempo de ejecución de la administración central de SharePoint. Estoy usando el siguiente código para hacer eso:

    private static void CreateProperty(string propertyName, Category category, ManagedPropertyCollection managedProperties)
    {
        var crawledProperty = category.CreateCrawledProperty(propertyName, false, Constants.CategoryId, 31);
        crawledProperty.IsMappedToContents = true;
        SetMapping(crawledProperty, managedProperties);
        crawledProperty.Update();
    }

    private static void SetMapping(CrawledProperty cProp, ManagedPropertyCollection managedProperties)
    {
        ManagedProperty mProp = managedProperties.Create(cProp.Name, ManagedDataType.Text);
        mProp.EnabledForScoping = true;
        Mapping newMapping = new Mapping(cProp.Propset, cProp.Name, cProp.VariantType, mProp.PID);
        MappingCollection mappings = mProp.GetMappings();
        mappings.Add(newMapping);
        mProp.SetMappings(mappings);
        mProp.EnabledForScoping = true;
    }

Las propiedades estáticas se agregan mientras la instalación, las propiedades dinámicas agrega manual en la administración central. Estoy usando el mismo código para agregar propiedades mientras la instalación y configuración de manual en la administración central.

El problema es el valor del indicador de SharePoint "incluido en el índice" para las propiedades de Crawl. En el caso, cuando se ha completado la instalación, el valor de este indicador es verdadero (sí) para todas las propiedades de rastreo estático. De lo contrario, para las propiedades dinámicas, este indicador es falso (no). Necesito haber verificado siempre el indicador "incluido en el índice".

Como sé, la propiedad es mMappedTocontents de la clase Crawlproperty es responsable del valor "incluido para indexar", ¡pero no funciona para mí!

¿Tienes alguna idea de hacer eso? ¿Y qué hago mal?

Gracias por adelantado.

No hay solución correcta

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top