Como: alterar a configuração importância para uma propriedade gerenciada
Você pode alteração o peso aplicado a um gerenciado propriedade usando o ManagedProperty M:Microsoft.Office.Server.Search.Administration.ManagedProperty classe no modelo objeto administração Pesquisar da empresa osssearchshort. Essa configuração é aplicada quando o de conteúdo é indexado.
A alteração a espessura de um gerenciado propriedade de um aplicativo console
No seu aplicativo, definir referências para o seguinte DLLs:
Microsoft.SharePoint.dll
Microsoft.Office.Server.dll
Microsoft.Office.Server.Search.dll
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;
Crie uma função para gravar informações de uso para o janela do console.
static void Usage() { Console.WriteLine("Change Property Weight"); Console.WriteLine("Usage: PropertyWeightSample.exe ManagedPropertyName <WeightValue>"); Console.WriteLine("<WeightValue>: Must be formatted as a float."); }
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; }
Recuperar os valores especificados no parâmetro args[] args [] que serão usado para especificar o nome do gerenciado propriedade para alteração de configuração de peso para e o novo valor configuração de peso.
string strPropertyName = args[0].ToLower(); float newWeight = Convert.ToSingle(args[1]);
Para recuperar o objeto Schema esquema para o contexto pesquisa do Shared Services Provider (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)));
Recuperar a coleção de gerenciado propriedades usando a seguinte codificar.
ManagedPropertyCollection properties = sspSchema.AllManagedProperties;
Determinar se a coleção de gerenciado o gerenciado inclui propriedades propriedade que você desejar para alteração o peso de verificando o valor retornado para o método Contains contém. Se false, a propriedade não existir, portanto, escreva sem uma mensagem para o console indicando isso.
if (!properties.Contains(strPropertyName)) { Console.WriteLine strPropertyName + " property does not exist."); return; }
Se o método contém Containstrue, executar um loop por meio de gerenciado retorna propriedades e para cada um, verificar se o Name propriedade Nome coincide com o valor de strPropertyName, e em caso afirmativo, alteração de Weight propriedade Weight para o valor especificado.
foreach (ManagedProperty property in properties) { if (property.Name.ToLower() == strPropertyName) { property.Weight = newWeight; Console.WriteLine("Weight value changed for " + strPropertyName + " property."); Console.WriteLine("NAME: " + property.Name + " WEIGHT: " + property.Weight.ToString()); } }
Exemplo
Este é o completo codificar para o aplicativo de console exemplo.
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.Generic;
using System.Text;
using Microsoft.SharePoint;
using Microsoft.Office.Server.Search.Administration;
namespace PropertyWeightSample
{
class Program
{
static void Main(string[] args)
{
try
{
if (args.Length != 2)
{
Usage();
return;
}
/*
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;
string strPropertyName = args[0].ToLower();
float newWeight = Convert.ToSingle(args[1]);
if (!properties.Contains(strPropertyName))
{
Console.WriteLine(strPropertyName + " property does not exist.");
return;
}
foreach (ManagedProperty property in properties)
{
if (property.Name.ToLower() == strPropertyName)
{
property.Weight = newWeight;
Console.WriteLine("Weight value changed for " + strPropertyName + " property.");
Console.WriteLine("NAME: " + property.Name + " WEIGHT: " + property.Weight.ToString());
}
}
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
Usage();
}
}
private static void Usage()
{
Console.WriteLine("Change Property Weight");
Console.WriteLine("Usage: PropertyWeightSample.exe ManagedPropertyName <WeightValue>");
Console.WriteLine("<WeightValue>: Must be formatted as a float.");
}
}
}
Consulte também
Referência
Microsoft.Office.Server.Search.Administration.Schema
Outros recursos
Visão geral da arquitetura Relevance de pesquisa da empresa
Guia de Introdução com o modelo de objeto de administração de pesquisa da empresa
Administração de pesquisa da empresa por meio de programação
Melhorando Relevance