Compartilhar via


Como a: criar uma propriedade gerenciada

O objeto Schema esquema no modelo objeto administração Pesquisar da empresa osssearchshort fornece acessar para o gerenciado propriedades configuradas para o serviço pesquisa de um Shared Services Provider (SSP). Para obter mais informações sobre o objeto Schema esquema, consulte Gerenciamento de metadados.

O seguinte procedimento mostra como criar um gerenciado propriedade de um aplicativo console.

Para criar um gerenciado propriedade de um aplicativo console

  1. No seu aplicativo, definir referências para o seguinte DLLs:

    • Microsoft.SharePoint.dll

    • Microsoft.Office.Server.dll

    • Microsoft.Office.Server.Search.dll

  2. No arquivo classe do seu aplicativo de console, adicionar o seguinte using instruções perto de parte superior da codificar Using com as outras diretivas de espaço para nome.

    using Microsoft.SharePoint;
    using Microsoft.Office.Server.Search.Administration;
    
  3. Crie uma função para gravar informações de uso para o janela do 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. No Main() Main() função do aplicativo de console, adicionar codificar a verificar o número de itens de parâmetro args[] args []; Ele deve igual a 2. Se ele não, em seguida, chamar o Usage() Usage() função definido na etapa 3.

    if (args.Length != 2)
    {
    Usage();
    return;
    }
    
  5. Recuperar os valores especificados no parâmetro args[] args [], ser usado para especificar o nome e tipo de dados para o gerenciado propriedade.

    string strName = args[0];
    string strDataType = args[1];
    
  6. Para recuperar o objeto Schema esquema para contexto pesquisa do SSP, adicionar o seguinte codificar. Para obter mais informações sobre maneiras para recuperar o contexto pesquisa, consulte Como a: Return o contexto de pesquisa para o provedor de serviço de pesquisa.

    /*
    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. Recuperar a coleção de gerenciado propriedades usando a seguinte codificar:

    ManagedPropertyCollection properties = sspSchema.AllManagedProperties;
    
  8. Determinar se a coleção de gerenciado propriedades já inclui um gerenciado propriedade com o mesmo nome especificado para a nova propriedade.

    if (properties.Contains(strName))
    {
       Console.WriteLine("Managed Property with that name already exists.");
       return;
    }
    
  9. Se o método contém Containsfalse retorna, usando o valor na variável de strDataType strDataType, determine qual tipo de dados usar e, em seguida, criar chamar o Create método para criar o gerenciado novo propriedade.

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

Exemplo

Este é o completo codificar para o aplicativo de console exemplo descrito neste tópico.

Pré-requisitos

  • Certifique-se que um provedor de serviços compartilhados já é criado.

Referências do projeto

Adicione o seguinte referências do projeto no seu projeto código do aplicativo console antes execução neste exemplo:

  • 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");
        }
    }
}

Consulte também

Outros recursos

Gerenciamento de metadados
Como a: Return o contexto de pesquisa para o provedor de serviço de pesquisa
Como a: recuperar as propriedades gerenciadas para um provedor serviços compartilhados
Como a: excluir uma propriedade gerenciada