如何:以编程方式管理对内容源的爬网

企业级搜索管理对象模型中的 ContentSource 类提供了几种方法,可以用于在特定内容源的爬网计划之外以编程方式启动、停止、暂停和恢复爬网。还可以使用几种 ContentSource 类属性检查内容源的爬网状态。

以下过程中的步骤介绍如何执行以下任务:

  • 设置控制台应用程序以使用企业级搜索管理对象模型。

  • 检索特定内容源。

  • 执行该内容源的各种爬网管理任务。

还可以用编程方式设置内容源的爬网计划。有关详细信息,请参阅如何:以编程方式配置内容源的爬网计划

设置应用程序以使用企业级搜索管理对象模型

  1. 在应用程序引用以下 DLL:

    • Microsoft.SharePoint.dll

    • Microsoft.Office.Server.dll

    • Microsoft.Office.Server.Search.dll

  2. 在控制台应用程序的类文件中,将以下 using 语句添加到具有其他命名空间指令的代码顶部附近。

    using Microsoft.SharePoint;
    using Microsoft.Office.Server.Search.Administration;
    
  3. 创建用于向控制台窗口写入使用信息的函数。

    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. 在控制台应用程序的 Main() 函数中,添加检查 args[] 参数中项数的代码;如果小于 1,则表示没有指定值以标识内容源,然后调用上一步中定义的 Usage() 函数。

    if (args.Length < 1 )
    {
    WriteUsage();
    return;
    }
    

检索特定内容源

  1. 添加以下代码,为共享服务提供程序 (SSP) 搜索上下文检索 Content 对象:

    /*
    Replace <SiteName> with the name of a site using the SSP
    */
    string strURL = "http://<SiteName>";
    Content sspContent = new Content(SearchContext.GetContext(new SPSite(strURL)));
    

    有关搜索上下文的检索方法的详细信息,请参阅如何:返回搜索服务提供程序的搜索上下文

  2. 检索内容源的集合。

    ContentSourceCollection sspContentSources = sspContent.ContentSources;
    
  3. 检索 args[] 参数第一项中指定的值,该值指明要检索的内容源的名称。

    string strContentSourceName = args[0];
    
  4. 从内容源集合中检索指定名称的内容源。

    ContentSource cs = sspContentSources[strContentSourceName];
    <…>
    

启动对内容源的增量爬网

  • 将“<…>”占位符替换为以下代码。

    cs.StartIncrementalCrawl();
    break;
    

启动对内容源的完全爬网

  • 将“<…>”占位符替换为以下代码。

    cs.StartFullCrawl();
    break;
    

暂停进行中的爬网

  • 将“<…>”占位符替换为以下代码。

    cs.PauseCrawl();
    break;
    

恢复暂停的爬网

  • 将“<…>”占位符替换为以下代码。

    cs.ResumeCrawl();
    break;
    

停止对内容源的爬网

  • 将“<…>”占位符替换为以下代码。

    cs.StopCrawl();
    break;
    

检查内容源的爬网状态值

  • 使用 ContentSource 对象的属性可以检查内容源的几个爬网状态值。以下示例介绍如何检查这些属性。

    Console.WriteLine("Crawl Status = " + cs.CrawlStatus);
    Console.WriteLine("Crawl started at: " + cs.CrawlStarted.ToString());
    Console.WriteLine("Crawl completed at: " + cs.CrawlCompleted.ToString());
    

See Also

任务

如何:返回搜索服务提供程序的搜索上下文

如何:检索共享服务提供程序的内容源

如何:添加内容源

如何:删除内容源

如何:以编程方式配置内容源的爬网计划

概念

内容源概述