Como: de forma programática configurar um agendamento de rastreamento para uma fonte de conteúdo
Em Pesquisa da empresa no Microsoft Office do SharePoint Server 2007, você indicar que de conteúdo é para ser rastreados pela indexação pesquisa serviço através de de conteúdo fontes configuradas do serviço de pesquisa compartilhados os serviços do provedor (SSP). Você pode adicionar fontes novo de conteúdo para de conteúdo de um SSP coleção origem usando o modelo objeto administração Pesquisar da empresa osssearchshort. Para obter mais informações, consulte Como a: Adicionar uma fonte de conteúdo.
Adicionando um de conteúdo origem para o de conteúdo é apenas parte de tarefa. Para de conteúdo a serem incluídos no de conteúdo índice, o componente índice pesquisa deve realmente rastrear o de conteúdo as well.
Você pode manualmente iniciar um rastrear completo ou incremental de um de conteúdo origem ? como bem como pausa, continuar ou parar a rastrear ? por chamado o apropriado métodos o ContenSource ContenSource classe. Para obter mais informações, consulte Como a: gerenciar de forma programática o rastreamento de uma fonte de conteúdo.
No entanto, se você desejar o de conteúdo para um de conteúdo origem rastreados em uma regular, de forma contínua, recomendamos que você configure uma cronograma rastrear. Você também pode fazer isso usando o modelo objeto administração Pesquisar da empresa osssearchshort.
O seguinte procedimento descreve como:
Configure um aplicativo console para usar o modelo objeto administração Pesquisar da empresa osssearchshort.
Configurar uma cronograma rastrear total para um de conteúdo origem, usando o WeeklySchedule WeeklySchedule classe.
Configurar uma cronograma rastrear incremental de um de conteúdo origem, usando o DailySchedule DailySchedule classe.
Para configurar o seu aplicativo para usar o modelo objeto Enterprise Search Administration
Definir referências em seu aplicativo 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.
private static void Usage() { Console.WriteLine("Manage Content Source Crawl Status"); Console.WriteLine("Usage: ManageCrawlStatus.exe <ContentSource>"); Console.WriteLine("<ContentSourceName> - Specify the content source name."); }
No Main() Main() função do aplicativo de console, adicionar codificar a verificar o número de itens de parâmetro args[] args []; Se ela for menor que 1, significando que nenhum valor foi especificado para identificar o de conteúdo origem e, em seguida, chamar o Usage() Usage() função definidos a Step 3.
if (args.Length < 1 ) { Usage(); return; }
Seguindo a codificar de etapa 4, adicionar o seguinte para recuperar o contexto pesquisa para o SSP.
/* Replace <SiteName> with the name of a site using the SSP */ string strURL = "http://<SiteName>"; SearchContext context; using (SPSite site = new SPSite(strURL)) { Context = SearchContext.GetContext(site); }
Para criar uma cronograma rastrear usando a classe DailySchedule
Crie uma instância do DailySchedule DailySchedule classe.
DailySchedule daily = new DailySchedule(context);
Para indicar quando para iniciar o rastreamento de de conteúdo origem e como freqüentes para rastrear, configurar as propriedades DailySchedule DailySchedule. Por exemplo:
//Indicates the schedule starts on the 15th day of the month. daily.BeginDay = 15; //Indicates the schedule starts in January. daily.BeginMonth = 1; //Indicates that the schedule starts in 2007. daily.BeginYear = 2007; //The next two lines of code indicate that the schedule starts at 2:30 in the morning. daily.StartHour = 2; daily.StartMinute = 30; //Indicates that the content should be crawled every day. daily.DaysInterval = 1;
Recuperar a coleção de de conteúdo fontes configurados para serviço pesquisa do SSP.
Content sspContent = new Content(context); ContentSourceCollection sspContentSources = sspContent.ContentSources;
Para criar uma cronograma rastrear usando a classe WeeklySchedule
Crie uma instância do WeeklySchedule WeeklySchedule classe.
WeeklySchedule weekly= new WeeklySchedule(context);
Para indicar quando para iniciar o rastreamento de de conteúdo origem e como freqüentes para rastrear, configurar as propriedades WeeklySchedule WeeklySchedule. Por exemplo:
//Indicates the schedule starts on the 1st day of the month. weekly.BeginDay = 1; //Indicates the schedule starts in January. weekly.BeginMonth = 1; //Indicates that the schedule starts in 2007. weekly.BeginYear = 2007; //The next two lines of code indicate that the schedule starts at 11:15 at night. weekly.StartHour = 23; weekly.StartMinute = 15; //Indicates that the content should be crawled every week. weekly.WeeksInterval = 1;
Para configurar o de conteúdo origem para usar as novas agendas
Recuperar o valor especificado no parâmetro args[0] args [0] e verificar que de conteúdo do o SSP coleção origem contém um de conteúdo origem com esse nome.
string strContentSourceName = args[0]; if(sspContentSources.Exists(strContentSourceName) ) { <…> } else { Console.WriteLine("Content source does not exist."); }
Recuperar o de conteúdo origem com o nome especificado e definir o FullCrawlSchedule e IncrementalCrawlSchedule IncrementalCrawlSchedule propriedades para as novas agendas.
ContentSource cs = sspContentSources[strContentSourceName]; cs.IncrementalCrawlSchedule = daily; cs.FullCrawlSchedule = weekly; cs.Update();
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.Generic;
using System.Text;
using Microsoft.SharePoint;
using Microsoft.Office.Server.Search.Administration;
namespace ManageCrawlStatus
{
class Program
{
static void Main(string[] args)
{
try
{
if (args.Length < 1)
{
Usage();
return;
}
/*
Replace <SiteName> with the name of a site using the Shared Services Provider
*/
string strURL = "http://<SiteName>";
SearchContext context;
using (SPSite site = new SPSite(strURL))
{
Context = SearchContext.GetContext(site);
}
DailySchedule daily = new DailySchedule(context);
//Indicates the schedule starts on the 15th day of the month.
daily.BeginDay = 15;
//Indicates the schedule starts in January.
daily.BeginMonth = 1;
//Indicates that the schedule starts in 2007.
daily.BeginYear = 2007;
//The next two lines of code indicate that the schedule starts at 2:30 in the morning.
daily.StartHour = 2;
daily.StartMinute = 30;
//Indicates that the content should be crawled every day.
daily.DaysInterval = 1;
WeeklySchedule weekly = new WeeklySchedule(context);
//Indicates the schedule starts on the 1st day of the month.
weekly.BeginDay = 1;
//Indicates the schedule starts in January.
weekly.BeginMonth = 1;
//Indicates that the schedule starts in 2007.
weekly.BeginYear = 2007;
//The next two lines of code indicate that the schedule starts at 11:15 at night.
weekly.StartHour = 23;
weekly.StartMinute = 15;
//Indicates that the content should be crawled every week.
weekly.WeeksInterval = 1;
string strContentSourceName = args[0];
Content sspContent = new Content(context);
ContentSourceCollection sspContentSources = sspContent.ContentSources;
if (sspContentSources.Exists(strContentSourceName))
{
ContentSource cs = sspContentSources[strContentSourceName];
cs.IncrementalCrawlSchedule = daily;
cs.FullCrawlSchedule = weekly;
cs.Update();
}
else
{
Console.WriteLine("Content source does not exist.");
}
}
catch (Exception e)
{
e.ToString();
}
}
private static void Usage()
{
Console.WriteLine("Configure Crawl Schedule");
Console.WriteLine("Usage: ConfigureCrawlSchedule.exe <ContentSourceName>");
Console.WriteLine("<ContentSourceName> - Specify the content source name.");
}
}
}
Consulte também
Outros recursos
Como a: Return o contexto de pesquisa para o provedor de serviço de pesquisa
Visão geral sobre fontes de conteúdo
Como a: recuperar as fontes de conteúdo para um provedor serviços compartilhados
Como a: Adicionar uma fonte de conteúdo
Como a: excluir uma fonte de conteúdo
Como a: gerenciar de forma programática o rastreamento de uma fonte de conteúdo