Compartir a través de


Procedimiento para configurar mediante programación una programación de rastreo para un origen de contenido

En Enterprise Search de Microsoft Office SharePoint Server 2007, debe indicar qué contenido desea que rastree el servicio de indización de búsqueda a través de los orígenes de contenido configurados para el proveedor de servicios compartidos (SSP) del servicio de búsqueda. Puede agregar nuevos orígenes de contenido a un colección de orígenes de contenido de SSP mediante el uso del modelo de objetos de administración de Enterprise Search. Para obtener más información, consulte Procedimiento para agregar un origen de contenido.

Agregar un origen de contenido para su contenido sólo es una parte de la tarea. Para que el contenido se incluya en el índice de contenido, el componente de índice de búsqueda también debe rastrear el contenido.

Puede iniciar manualmente un rastreo completo incremental de un origen de contenido, así como pausar, reanudar o detener el rastreo llamando a los métodos adecuados de la clase ContenSource. Para obtener más información, consulte Procedimiento para administrar mediante programación el rastreo de un origen de contenido.

Sin embargo, si desea que el contenido de un origen de contenido sea rastreado de una manera periódica y constante, es recomendable que configure un programa de rastreo. También puede hacer esto mediante el uso del modelo de objetos de administración de Enterprise Search.

El siguiente procedimiento describe cómo:

  • Configure una aplicación de consola para usar el modelo de objetos de administración Enterprise Search.

  • Configurar una programación de rastreo completa para un origen de contenido mediante el uso de la clase WeeklySchedule.

  • Configurar una programación de rastreo incremental para un origen de contenido mediante el uso de la clase DailySchedule.

  1. Establezca las referencias de la aplicación en las siguientes DLL:

    • Microsoft.SharePoint.dll

    • Microsoft.Office.Server.dll

    • Microsoft.Office.Server.Search.dll

  2. En el archivo de clases de la aplicación de la consola, agregue las siguientes instrucciones using cerca de la parte superior del código con las otras directivas de espacio de nombres.

    using Microsoft.SharePoint;
    using Microsoft.Office.Server.Search.Administration;
    
  3. Cree una función para escribir la información de uso en la ventana de la consola.

    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.");
    }
    
  4. En la función Main() de la aplicación de la consola, agregue código para comprobar el número de elementos del parámetro args[]; si es inferior a 1, lo que significa que no se especificó ningún valor para identificar el origen de contenido, llame a la función Usage() definida en el Paso 3.

    if (args.Length < 1 )
    {
       Usage();
       return;
    }
    
  5. Tras el código del Paso 4, agregue lo siguiente para recuperar cada contexto de búsqueda del 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 crear una programación de rastreo mediante el uso de la clase DailySchedule

  1. Cree una instancia de la clase DailySchedule.

    DailySchedule daily = new DailySchedule(context);
    
  2. Para indicar cuándo se ha de iniciar el rastreo del origen de contenido y la frecuencia del mismo, configure las propiedades de DailySchedule. Por ejemplo:

    //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;
    
  3. Recupere la colección de orígenes de contenido configurados para el servicio de búsqueda del SSP.

    Content sspContent = new Content(context);
    ContentSourceCollection sspContentSources = sspContent.ContentSources;
    

Para crear una programación de rastreo mediante el uso de la clase WeeklySchedule

  1. Cree una instancia de la clase WeeklySchedule.

    WeeklySchedule weekly= new WeeklySchedule(context);
    
  2. Para indicar cuándo se ha de iniciar el rastreo del origen de contenido y la frecuencia del mismo, configure las propiedades de WeeklySchedule. Por ejemplo:

    //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 el origen de contenido que se va a usar con las nuevas programaciones

  1. Recupere el valor especificado en el parámetro args[0] y compruebe que la colección de orígenes de contenido del SSP contiene un origen de contenido con ese nombre.

    string strContentSourceName = args[0];
    if(sspContentSources.Exists(strContentSourceName) )
    {
       <…>
    }
    else 
    {
       Console.WriteLine("Content source does not exist.");
    }
    
  2. Recupere el origen de contenido con el nombre especificado y establezca las propiedades FullCrawlSchedule y IncrementalCrawlSchedule con las nuevas programaciones.

    ContentSource cs = sspContentSources[strContentSourceName];
    cs.IncrementalCrawlSchedule = daily;
    cs.FullCrawlSchedule = weekly;
    cs.Update();
    

Ejemplo

A continuación, se muestra el código completo para la aplicación de consola de ejemplo que se describe en este tema.

Requisitos previos

  • Asegúrese de que ya se haya creado un Proveedor de servicios compartidos.

Referencias del proyecto

Antes de ejecutar este ejemplo, agregue las siguientes referencias de proyecto al proyecto de código de aplicación de consola:

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

Vea también

Otros recursos

Procedimiento: Devolver el contexto de búsqueda para el proveedor del servicio de búsqueda
Introducción a los orígenes de contenido
Procedimiento para recuperar los orígenes de contenido para un proveedor de servicios compartidos
Procedimiento para agregar un origen de contenido
Procedimiento para eliminar un origen de contenido
Procedimiento para administrar mediante programación el rastreo de un origen de contenido