米Yahoo!が米国時間3月1日に検索サービス「Yahoo! Search」のAPIを公開した(関連記事)。同社サイトで提供している各種検索サービスについて,XML Webサービス(以下Webサービス)を介して一般に提供し,Yahoo! Searchをより広く使ってもらおうというのが狙いだ。

 しかしこの取り組みは単なるAPIの公開にとどまらないとYahoo!社は説明している。それは開発者コミュニティそのものを意味するという。それはどういうことなのだろう?

 今回は実際にこのAPIを利用してみるとともに,各種資料や米メディア,関係者のブログなども参照しながらYahoo!社の新たな取り組みについて考えてみる。

Googleより広範な多くのサービスを開放

 検索APIの公開は何もYahoo!社が初めてではない。米Googleと米Amazon.comは3年前に,それぞれ「Google Web API」と「Amazon Web Services」(現在は「E-Commerce Service(ECS)」)の名称で始めている。米eBayも有料だが2年前に始めた。しかしYahoo!社は,(今回の取り組みは)他社(とりわけGoogle社)のそれよりも大規模なものと説明する。その理由として挙げるのが,広範なサービス。また,サービスの利用制限についても触れている。Google Web APIが1日に1000回のクエリーに制限されているのに対し,Yahoo!社の場合は同じ条件で5000回とした。

 具体的に見てみよう。同社が提供するAPIは,大きく分けて次の5つになる。

(1)Web検索(msword, pdfなどのファイル形式も指定できる)
(2)画像検索(Web上の15億以上の画像を対象にした検索)
(3)映像検索(同じくWeb上の映像を対象にした検索,映像数は未公表)
(4)ニュース検索(7000以上のニュース・ソースを対象にする)
(5)地域情報検索(地域の店や企業などを検索)

 これに,スペル・チェックや関連語表示のAPIが加わる。なお同WebサービスがサポートするアーキテクチャはREST(Representational State Transfer)。同社資料によれば,今のところSOAPをサポートするつもりはないとのことだ。RESTを選んだ理由は,「みなが理解しやすく,ほとんどのモダンなスクリプト言語からアクセスできるから」(Yahoo!社)という(Yahoo!社資料)。

 同検索サービスは,RESTのリクエストURLを作成し,それを送信することで利用する。リクエストURLは以下のように4つのパートから成る。

 まずホスト名を含むURL
 http://api.search.yahoo.com

 次にサービス名とバージョン・ナンバー
 /WebSearchService/V1/
 
 サービスのメソッドとクエスチョン・マーク
 webSearch?

 以上でベースとなるURLが完成。これにクエリー用の各種パラメータを加える(各パラメータはアンパサンドでつなぐ)
 appid=YahooDemo&query=finances&format=pdf

 上記は,Web検索で「finances」という語を含むPDF書類を検索する例。これと同様にして,次のような地域情報検索のURLを作ってみた。

http://api.local.yahoo.com/LocalSearchService/V1/localSearch ?appid=YahooDemo&query=sushi&city=Nashville&state=TN&results=10

写真1●デモ用IDでテネシー州ナッシュビルのすし店を検索
「Ru San's Japanese Sushi & Seafood」といったの店の情報が返ってきた
 これはテネシー州ナッシュビルのすし店を検索するというもの。これを実行すると写真1[拡大表示]のようなXML文書が返ってくる。これをパースして自分のWebサイトやアプリケーションで利用するというわけだ。なお,「appid=」の次に来るのはアプリケーションID。この例では「YahooDemo」とデモ用のIDを使っているが,実際の利用では登録する必要がある(アプリケーションIDは自分の好きな文字列で登録できる)。

 ついでなので,このデモIDを使って,もう2つほど試してみよう(今度はクリックしていただくとブラウザに結果が表示されます)。

  • 「nikkei」の関連語
      http://api.search.yahoo.com/WebSearchService/V1/relatedSuggestion ?appid=YahooDemo&query=nikkei

  • 「nukkei」(スペル・ミス)
     http://api.search.yahoo.com/WebSearchService/V1/spellingSuggestion ?appid=YahooDemo&query=nukkei

     なおアプリケーションIDの登録やAPIの利用はすべて無料。条件は,商用目的でないことと,WebサイトやアプリケーションにYahoo!社のAPIを使っていることを示す文言(例えば「Powered by Yahoo!」)を記すということだけである。

     以上がYahoo!検索APIの概略だ。では具体的にこうしたサービスをどのような場面で利用するのだろうか。