1

私のC#プログラムを完了するために助けが必要です。私のファームには4つのコンテンツソースがあります。すべてのコンテンツソースを取得し、コンテンツソースがアイドル状態の場合は、フルクロールを開始する必要があります。

それを行うための最良の方法は何ですか。誰かが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 に答える