SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

japan.internet.com翻訳記事

Live Search API入門

Live Search APIの使い方

  • X ポスト
  • このエントリーをはてなブックマークに追加

Webサービスの参照

 アプリケーションIDを取得したら、次はLive Search Webサービスを利用できるようにアプリケーションを構成します。Visual Studioで、http://soap.search.msn.com/webservices.asmx?wsdlのWSDLへのWeb参照を追加します。図4は[Web参照の追加]ダイアログボックスでLive Search Webサービスを追加している様子です。利用するWebサービスが見つかったら、サービス名を指定し、[参照の追加]ボタンをクリックします。本記事のサンプルコードでは「LiveSearch」というサービス名を使用します。

図4 Visual Studioの[Web参照の追加]ダイアログボックスでLive Search Webサービスへの参照を追加する
図4 Visual Studioの[Web参照の追加]ダイアログボックスでLive Search Webサービスへの参照を追加する

基本検索の実行

 Live Search Webサービスへの参照を追加したら、検索を実行するSearchメソッドを利用できます。次のコードは基本検索の実行例です。

MSNSearchService serv = new MSNSearchService();
SearchRequest sRequest = new SearchRequest();
SourceRequest[] sr = new SourceRequest[1];
sr[0] = new LiveSearch.SourceRequest();
sr[0].Source = LiveSearch.SourceType.Web;
sr[0].ResultFields = ResultFieldMask.All;
sRequest.Query = "Live Search Articles";
sRequest.Flags = SearchFlags.None;
sRequest.Requests = sr;
   
// Replace with your own Application ID
sRequest.AppID = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
sRequest.CultureInfo = "en-US";
SearchResponse resp = serv.Search(sRequest);
筆者注

 このコードを利用するときには、アプリケーションIDを実際の値に置き換える必要があります。

 この基本検索では、「Live Search Articles」という検索語に適合するページをインターネット全体から検索し、すべての結果フィールドを返します。得られる結果は図5のとおりです。

図5 Live Search Webサービスで「Live Search Articles」を検索したときの結果
図5 Live Search Webサービスで「Live Search Articles」を検索したときの結果

 検索結果はSourceResponseオブジェクトで返り、その中に結果の配列が格納されています。検索の種類や要求したフィールドによっては、結果にさまざまなフィールドが含まれていることがあります。無用な例外を防ぐために、各フィールドがnullでないかどうかをチェックしてから使用するのがよいでしょう。

SearchResponse resp = serv.Search(sRequest);
foreach (Result r in resp.Responses[0].Results)
{
string title, description, url;
  title = (!String.IsNullOrEmpty(r.Title)) 
    ? r.Title : "";
  description = 
    (!String.IsNullOrEmpty(r.Description)) 
    ? r.Description : "";
  url = (!String.IsNullOrEmpty(r.Url)) 
    ? r.Url : "";
}

 取得するフィールドはResultFieldMaskでカスタマイズできます。たとえば、TitleDescription、およびDisplayUrlの各フィールドのみを表示するには、次のようなコードを使用します。

SourceRequest[] sr = new SourceRequest[1];
sr[0].ResultFields = 
    ResultFieldMask.Description | 
    ResultFieldMask.DisplayUrl | 
    ResultFieldMask.Title;

 検索結果は図6のように変わります。

図6 ResultFieldMaskを使用してTitle、Description、およびDisplayUrlの各フィールドのみを取得した場合の検索結果
図6 ResultFieldMaskを使用してTitle、Description、およびDisplayUrlの各フィールドのみを取得した場合の検索結果

検索対象サイトの絞り込み

 ここまでのサンプルは、インターネット全体を対象とした検索でしたが、特定のサイトのみを検索対象とするように限定することも可能です。次のコードは、http://www.soulsolutions.com.auというサイトのみを対象として、「Virtual Earth」についての検索結果を取得します。

SearchRequest sRequest = new SearchRequest();
sRequest.Query = "Virtual Earth site:www.soulsolutions.com.au";

 結果は図7のとおりです。

図7 特定のサイトのみに検索対象を限定すると、このような結果が得られる
図7 特定のサイトのみに検索対象を限定すると、このような結果が得られる

次のページ
検索のカスタマイズ

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
japan.internet.com翻訳記事連載記事一覧

もっと読む

この記事の著者

japan.internet.com(ジャパンインターネットコム)

japan.internet.com は、1999年9月にオープンした、日本初のネットビジネス専門ニュースサイト。月間2億以上のページビューを誇る米国 Jupitermedia Corporation (Nasdaq: JUPM) のニュースサイト internet.comEarthWeb.com からの最新記事を日本語に翻訳して掲載するとともに、日本独自のネットビジネス関連記事やレポートを配信。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

Bronwen Zande(Bronwen Zande)

オーストラリアのブリスベーンに本社を置くSoul Solutionsのディレクター。10年以上前からソフトウェア開発に携わり、主にMicrosoft Liveと.NET開発を専門とする。Windows Live ServicesのMVP。Windows Live技術に関するコミュニティサイトViaWindowsLive.comの運営チームの中核メンバでもある。Windows Live以外では、世界中のギークガールたちを結束させる活動も行っている。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/2973 2008/09/17 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング