以编程方式获取SharePoint快速搜索内容源

时间:2013-03-10 17:51:03

标签: sharepoint sharepoint-2010 sharepoint-api fastsearch

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

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

1 个答案:

答案 0 :(得分: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

UPDATE:

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

 SearchService s = new SearchService("OSearch14", SPFarm.Local);
 foreach (SearchServiceApplication ssa in s.SearchApplications)
   {
      //do something with the proxy here
   }