WebOS Goodies

WebOS の未来を模索する、ゲームプログラマあがりの Web 開発者のブログ。

WebOS Goodies へようこそ! WebOS はインターネットの未来形。あらゆる Web サイトが繋がり、共有し、協力して創り上げる、ひとつの巨大な情報システムです。そこでは、あらゆる情報がネットワーク上に蓄積され、我々はいつでも、どこからでも、多彩なデバイスを使ってそれらにアクセスできます。 WebOS Goodies は、さまざまな情報提供やツール開発を通して、そんな世界の実現に少しでも貢献するべく活動していきます。
Subscribe       

SearchMash の未公開 JSON API

いつも Google に関する興味深いネタを提供してくれる Google Operating System さんの こちらの記事で、 Google の次世代検索機能の実験サイト SearchMash で使われている未公開 API が解説されていました。簡単な HTTP リクエストを投げるだけで JSON 形式の検索結果を取得でき、画像や動画検索もできるというなかなかの優れものです。

ということで、本日はこの SearchMash API を(受け売りで^^;)ご紹介しようと思います。

概要

API といっても、難しい手続きはなにもありません。検索結果を取得する手順は、以下の 2 つだけです。

  • "http://www.searchmash.com/results/<検索文字列>" という URLHTTP リクエストを投げる。
  • レスポンスとして返された JSON 形式の文字列を解析し、検索結果を取得する。

認証もなにもない普通の HTTP リクエストですので、ブラウザで簡単に動作を確かめることができます。例えば、以下のリンクをクリックしてみてください。

http://www.searchmash.com/results/WebOS

改行がまったく入っていないのでわかりづらいですが、なんとなく JSON っぽい文字列が表示されたはずです。これが SearchMash で "WebOS" を検索した際の検索結果です。データ構造は後述しますが、非常にシンプルで利用しやすい形になっています。

結果の範囲指定

検索リクエストの URL には、以下の CGI パラメータを付加できます。

パラメータ名
i 開始インデックス
n 取得する結果の数

例えば、この URL は "WebOS" の検索結果のうち 10 番目から 5 個を返します。

http://www.searchmash.com/results/WebOS?i=10&n=5

SearchMash では、リンクをクリックすることで次々と後続の検索結果が表示されていきますが、内部ではこのようにして検索結果を取得しているんですね。

マルチメディア検索

検索文字列の先頭に "<メディア>:" を負荷することにより、画像、 blog 、動画検索が行えます。例えば、 "WebOS" で画像検索する URL は以下のようになります。

http://www.searchmash.com/results/images:WebOS

指定できるメディアには以下のものがあります。

指定検索対象
images画像
blogsブログ
video動画

その他、通常の Google 検索がサポートしている "site:", "inurl:" などの指示子も使えるようです。

クエリー結果の詳細

クエリー結果に関してはちょっと調べきれていないのですが、通常の Web 検索の結果には以下のメンバが含まれています。

プロパティー名内容
estimatedCount検索結果のおおよその総数
moreResults結果に続きがあるかどうか
event不明
query検索文字列など
results検索結果の配列

results に格納されているそれぞれのオブジェクトは以下のメンバを保持しています。

プロパティー名内容
titleページタイトル
snippet内容の抜粋
siteドメイン名
rawUrlページの URL(url との相違点は不明)
urlページの URL
cacheUrlGoogle のキャッシュの URL
displayUrl検索結果に表示するドメイン名

title, snippet, displayUrl は、検索文字列とマッチした部分に B タグが挿入されています。ですので、表示する際は innerHTML にそのままぶち込む形で OK です。 HTML エスケープをかけてはいけません。

それぞれのメンバの詳細は私も把握していないですし、他のメディアの検索ではまったく違った情報が返ってくるようです。さすがに調べきれないので、代わりに検索結果を表示する Google ガジェットを作ってみました。必要な方は、実際にいろいろ検索して調査してみてください。詳細がわかったら、教えていただけるとうれしいです(他力本願^^;)。

予断ですが、 Google ガジェットは手軽に任意のサイトに HTTP リクエストが投げられるので、 Web API の実験には最適です。 Google ガジェットの作り方は以下の記事でご紹介しています。まだ書きかけですが、興味のある方はどうぞ。

本日は、 SearchMash の検索機能を利用するための API をご紹介しました。従来の GoogleSOAP APIAjax Search API に比べて、格段に利用しやすいものになっていますね。画像や動画検索もできますから、いろいろ楽しい応用が考えられそうです。皆さんもぜひ遊んでみてください!

関連記事

この記事にコメントする

Recommendations
Books
「Closure Library」の入門書です。
詳しくはこちらの記事をどうぞ!
Categories
Recent Articles