Share via


[方法] コンテンツ ソースのクロールをプログラム的に管理する

エンタープライズ検索 管理オブジェクト モデルの 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

タスク

[方法] 検索サービス プロバイダに検索コンテキストを返す

[方法] 共有サービス プロバイダのコンテンツ ソースを取得する

[方法] コンテンツ ソースを追加する

[方法] コンテンツ ソースを削除する

[方法] コンテンツ ソースのクロール スケジュールをプログラムで構成する

概念

コンテンツ ソースの概要