1

需要帮助来完成我的 C# 程序。我的农场中有四个内容源。如果内容源空闲,我需要获取所有内容源并开始完全爬网。

最好的方法是什么。请有人给我指出一篇关于 Sharepoint 搜索对象模型/快速搜索对象模型的好文章。

4

1 回答 1

1

您可以使用以下方式获取所有ContentSourceCollection

      /*
       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);
        }
        Content sspContent = new Content(context);
        ContentSourceCollection sspContentSources = sspContent.ContentSources;

        foreach (ContentSource cs in sspContentSources)
        {
            Console.WriteLine("NAME: " + cs.Name + "  ID: " + cs.Id);
        }

如果你想具体ContentSource比:

   string strContentSourceName = "FASTQuerySSA"; //which indicates the name of the content source to retrieve
   ContentSource cs = sspContentSources[strContentSourceName];

检查内容源的爬网状态值

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

开始内容源的增量爬网

   cs.StartIncrementalCrawl();
   break;

开始内容源的完整爬网

   cs.StartFullCrawl();
   break;

暂停正在进行的爬网

  cs.PauseCrawl();
  break; 

停止内容源的爬网

  cs.StopCrawl();
  break;

有关更多详细信息,请参见此处:http: //msdn.microsoft.com/en-us/library/aa679491%28v=office.12%29.aspx

更新:

下面是枚举场中所有搜索服务应用程序的一些代码。它确实包括所有这些,包括 FAST 内容和 FAST 查询:

 SearchService s = new SearchService("OSearch14", SPFarm.Local);
 foreach (SearchServiceApplication ssa in s.SearchApplications)
   {
      //do something with the proxy here
   }
于 2013-03-11T05:08:53.787 回答