Impostare il valore di crawlProperty "incluso nell'indice" a livello di programmazione (SharePoint 2007)

StackOverflow https://stackoverflow.com/questions/8924057

Domanda

Sto sviluppando la ricerca di SharePoint con la propria fonte di contenuti. E ho le mie proprietà striscianti e le mie proprietà gestite e la mappatura tra loro di conseguenza. Inoltre ho proprietà dinamiche, ad esempio l'utente può cambiare il set di proprietà in scansione, quindi lo faccio in fase di esecuzione da SharePoint Central Administration. Sto usando il seguente codice per farlo:

    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;
    }

Le proprietà statiche aggiungono durante l'installazione, le proprietà dinamiche aggiungono manuali all'amministrazione centrale. Sto usando lo stesso codice per aggiungere proprietà durante l'installazione e l'impostazione del manuale all'amministrazione centrale.

Il problema è il valore della flag di SharePoint "incluso nell'indice" per le proprietà di scansione. Nel caso, quando l'installazione è stata completata, il valore di questo flag è vero (sì) per tutte le proprietà di scansione statica. Altrimenti, per le proprietà dinamiche questa flag è falsa (no). Devo aver sempre controllato il flag "incluso nell'indice".

Come so, la proprietà ismaptocontents della classe CrawlProperty è responsabile del valore "incluso nell'indicizzare", ma non funziona per me!

Hai idea di farlo? E cosa faccio in modo errato?

Grazie in anticipo.

Nessuna soluzione corretta

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top