Compartilhar via


Como a: excluir 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 a programaticamente excluir um gerenciado propriedade usando o modelo objeto administração Pesquisar da empresa osssearchshort em um aplicativo console.

Para excluir 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("Delete Managed Properties Sample");
      Console.WriteLine("Usage: DeleteManagedPropertiesSample.exe  PropertyName");
    }
    
  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 1. Se ele não, em seguida, chamar o Usage() Usage() função definido na etapa 3.

    if (args.Length != 1)
    {
    Usage();
    return;
    }
    
  5. Recuperar o valor especificado no parâmetro args[] args [], ser usado para especificar o nome do gerenciado propriedade para excluir.

    string strName = args[0];
    
  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 inclui a propriedade especificada.

    if (properties.Contains(strName))
    {
       Console.WriteLine(strName + " property does not exist.  Delete failed.");
       return;
    }
    
  9. Se o método contém Containstrue, executar um loop por meio de gerenciado retorna propriedades e para cada um, verificar para ver se o Name propriedade Nome coincide com o valor de strName.

    foreach (ManagedProperty property in properties)
    {
        if (property.Name == strName)
        {
    
  10. Em seguida, confirme que a propriedade pode ser excluída por verificando o valor da propriedade de DeleteDisallowed.

    if (property.DeleteDisallowed)
    {
       Console.WriteLine("DeleteDisallowed enabled for " + strName + ".  Delete failed.");
       return;
    } 
    
  11. Se o DeleteDisallowed DeleteDisallowed propriedade retorna false, chamar o DeleteAllMappings DeleteAllMappings método e, em seguida, chamar o Delete Excluir método para a propriedade.

       property.DeleteAllMappings();
       property.Delete();
       Console.WriteLine(strName + " deleted.");
       return;
     }
    }
    

Exemplo

Este é o completo codificar para o exemplo classe aplicativo console.

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 DeleteManagedPropertiesSample
{
    class Program
    {
        static void Main(string[] args)
        {
            try
            {
                if (args.Length != 1)
                {
                    Usage();
                    return;
                }
                string strName = args[0];

 /*
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(strName + " property does not exist.  Delete failed.");
                    return;
                }
                foreach (ManagedProperty property in properties)
                {
                    if (property.Name == strName)
                    {
                        if (property.DeleteDisallowed)
                        {
                            Console.WriteLine("DeleteDisallowed enabled for " + strName + ".  Delete failed.");
  return;
                        }

                        property.DeleteAllMappings();
                        property.Delete();
                        Console.WriteLine(strName + " deleted.");
                        return;
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
            }
        }

        private static void Usage()
        {
            Console.WriteLine("Delete Managed Properties Sample");
            Console.WriteLine("Usage: DeleteManagedPropertiesSample.exe  PropertyName");
        }
    }
}

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: criar uma propriedade gerenciada