Share via


Procédure : créer une propriété gérée

L'objet Schema du modèle objet Administration d'Recherche de contenu d'entreprise permet d'accéder aux propriétés gérées configurées pour le service de recherche d'un fournisseur de services partagés. Pour plus d'informations sur l'objet Schema, voir Gestion des métadonnées.

La procédure suivante montre comment créer une propriété gérée dans une application de console.

Pour créer une propriété gérée dans une application de console

  1. Dans votre application, définissez des références aux DLL suivantes :

    • Microsoft.SharePoint.dll

    • Microsoft.Office.Server.dll

    • Microsoft.Office.Server.Search.dll

  2. Dans le fichier de classe de votre application de console, ajoutez les instructions using suivantes en début de code avec les autres directives d'espaces de noms.

    using Microsoft.SharePoint;
    using Microsoft.Office.Server.Search.Administration;
    
  3. Créez une fonction pour afficher des informations d'utilisation dans la fenêtre de la console.

    static void Usage()
    {
       Console.WriteLine("Create Managed Property");
       Console.WriteLine("Usage: CreateManagedPropertiesSample.exe PropertyName <DataType>");
       Console.WriteLine("<DataType> - The data type for the new property.  Must be one of:");
       Console.WriteLine("binary");
       Console.WriteLine("datetime");
       Console.WriteLine("decimal");
       Console.WriteLine("integer");
       Console.WriteLine("text");
       Console.WriteLine("yesno");
    }
    
  4. Dans la fonction Main() de l'application de console, ajoutez le code pour vérifier le nombre d'éléments dans le paramètre args[] ; il doit être égal à 2. Si ce n'est pas le cas, appelez la fonction Usage() définie au cours de l'étape 3.

    if (args.Length != 2)
    {
    Usage();
    return;
    }
    
  5. Récupérez les valeurs spécifiées dans le paramètre args[], à utiliser pour indiquer le nom et le type de données de la propriété gérée.

    string strName = args[0];
    string strDataType = args[1];
    
  6. Pour récupérer l'objet Schema du contexte de recherche du fournisseur de services partagés, ajoutez le code ci-après. Pour plus d'informations sur les différentes façons de récupérer le contexte de recherche, voir Procédure : renvoyer le contexte de recherche pour le fournisseur du service de recherche.

    /*
    Replace <SiteName> with the name of a site using the SSP
    */
    string strURL = "http://<SiteName>";
    Schema sspSchema = new Schema(SearchContext.GetContext(new SPSite(strURL)));
    
  7. Récupérez la collection de propriétés gérées en utilisant le code suivant :

    ManagedPropertyCollection properties = sspSchema.AllManagedProperties;
    
  8. Déterminez si la collection de propriétés gérées contient déjà une propriété gérée du même nom que celui spécifié pour la nouvelle propriété.

    if (properties.Contains(strName))
    {
       Console.WriteLine("Managed Property with that name already exists.");
       return;
    }
    
  9. Si la méthode Contains retourne false, en utilisant la valeur de la variable strDataType, déterminez le type de données à utiliser, puis appelez la méthode Create pour créer la propriété gérée.

    switch (strDataType)
    {
        case ("binary"):
    properties.Create(strName, ManagedDataType.Binary);
    Console.WriteLine(strName + " created.");
    break;
    
        case ("datetime"):
    properties.Create(strName, ManagedDataType.DateTime);
                 Console.WriteLine(strName + " created.");
                 break;
    
        case ("decimal"):
        properties.Create(strName, ManagedDataType.Decimal);
                 Console.WriteLine(strName + " created.");
                 break;
    
        case ("integer"):
        properties.Create(strName, ManagedDataType.Integer);
                 Console.WriteLine(strName + " created.");
                 break;
    
        case ("text"):
        properties.Create(strName, ManagedDataType.Text);
                 Console.WriteLine(strName + " created.");
                 break;
    
        case ("yesno"):
        properties.Create(strName, ManagedDataType.YesNo);
                 Console.WriteLine(strName + " created.");
                 break;
    
        default:
        Console.WriteLine("Datatype not recognized.");
                 Usage();
                 break;
    }
    

Exemple

Vous trouverez ci-après l'exemple de code complet pour l'application de console décrite dans cette rubrique.

Conditions préalables requises

  • Assurez-vous qu'un fournisseur de services partagés est déjà créé.

Références de projet

Ajoutez les références de projet suivantes dans votre projet de code d'application de console avant d'exécuter cet exemple :

  • Microsoft.SharePoint

  • Microsoft.Office.Server

  • Microsoft.Office.Server.Search

using System;
using System.Collections;
using System.Text;
using Microsoft.Office.Server.Search.Administration;
using Microsoft.SharePoint;

namespace CreateManagedPropertiesSample
{
    class Program
    {
        static void Main(string[] args)
        {
            try
            {
                if (args.Length != 2)
                {
                    Usage();
                    return;
                }
                string strName = args[0];
                string strDataType = args[1];
/*
Replace <SiteName> with the name of a site using the SSP
*/
                string strURL = "http://<SiteName>";
                Schema sspSchema = new Schema(SearchContext.GetContext(new SPSite(strURL)));
                ManagedPropertyCollection properties = sspSchema.AllManagedProperties;
                if (properties.Contains(strName))
                {
                    Console.WriteLine("Managed Property with that name already exists.");
                    return;
                }
                switch (strDataType)
                {
                    case ("binary"):
                        properties.Create(strName, ManagedDataType.Binary);
                        Console.WriteLine(strName + " created.");
                        break;

                    case ("datetime"):
                        properties.Create(strName, ManagedDataType.DateTime);
                        Console.WriteLine(strName + " created.");
                        break;

                    case ("decimal"):
                        properties.Create(strName, ManagedDataType.Decimal);
                        Console.WriteLine(strName + " created.");
                        break;

                    case ("integer"):
                        properties.Create(strName, ManagedDataType.Integer);
                        Console.WriteLine(strName + " created.");
                        break;

                    case ("text"):
                        properties.Create(strName, ManagedDataType.Text);
                        Console.WriteLine(strName + " created.");
                        break;

                    case ("yesno"):
                        properties.Create(strName, ManagedDataType.YesNo);
                        Console.WriteLine(strName + " created.");
                        break;

                    default:
                        Console.WriteLine("Datatype not recognized.");
                        Usage();
                        break;
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
            }
        }
        static void Usage()
        {
            Console.WriteLine("Create Managed Property");
            Console.WriteLine("Usage: CreateManagedPropertiesSample.exe PropertyName <DataType>");
            Console.WriteLine("<DataType> - The data type for the new property.  Must be one of:");
            Console.WriteLine("binary");
            Console.WriteLine("datetime");
            Console.WriteLine("decimal");
            Console.WriteLine("integer");
            Console.WriteLine("text");
            Console.WriteLine("yesno");
        }
    }
}

Voir aussi

Autres ressources

Gestion des métadonnées
Procédure : renvoyer le contexte de recherche pour le fournisseur du service de recherche
Procédure : récupérer les propriétés gérées pour un fournisseur de services partagés
Procédure : supprimer une propriété gérée