2011-09-29 9 views
0

Sharepoint APIなどの手段を使用して、コンテンツソース(ファイル共有など)のクロールをプログラムで開始することはできますか?Sharepoint 2010で特定のコンテンツソースのクロールをプログラムで開始する

+0

誰かが同じものを探しているなら、この質問が見つかりました。しかし、ビジネスデータコンテンツソースの代わりにファイル共有を使用する方法を理解することはできません。 http://stackoverflow.com/questions/6191544/create-sharepoint-2010-search-content-source-that-uses-a-bdc-via-powershell – Chamila

+1

http://stackoverflow.com/questions/5393766/検索開始範囲をインクルードコードから開始するにはどうすればよいですか –

+0

ありがとうRob!私はこれを明日チェックし、ここに結果を掲載します。 – Chamila

答えて

1

上記のRobのコメントに基づいて、私はこれが役立つことがわかりました。以下は、私がしたC#コードです。

コンソールアプリケーションを構築している場合、リンクのコードはSPServiceContext.Currentでエラーをスローします。したがって、最初のステップとGetContext()メソッドは、その状況に固有です。

SPSite mySite = new SPSite("http://localhost"); 
       SearchServiceApplicationProxy proxy = (SearchServiceApplicationProxy)SearchServiceApplicationProxy.GetProxy(SPServiceContext.GetContext(mySite));      Guid appId = proxy.GetSearchServiceApplicationInfo().SearchServiceApplicationId; 

       //Console.WriteLine("AppID : " + appId.ToString()); 

       SearchServiceApplication app = SearchService.Service.SearchApplications.GetValue<SearchServiceApplication>(appId); 
       Content content = new Content(app); 

       ContentSourceCollection cs = content.ContentSources; 
       Console.WriteLine("Name\tId\tCrawlCompleted"); 
       foreach (ContentSource csi in cs) 
       { 
        Console.WriteLine(csi.Name + "\t" + csi.Id + "\t" + csi.CrawlCompleted); 
       } 

       Console.WriteLine("Starting full crawl...."); 

       ContentSource css = content.ContentSources["source name"]; //csi.Name within square brackets 
       css.StartFullCrawl(); 

       Console.WriteLine("Full crawl on source name started..."); 

ビルドターゲットプラットフォームをSharepointインストールのプロジェクトプロパティで調整してください。さもなければ、SpSiteは作成されません。