SearchMash の未公開 JSON API
いつも Google に関する興味深いネタを提供してくれる Google Operating System さんの こちらの記事で、 Google の次世代検索機能の実験サイト SearchMash で使われている未公開 API が解説されていました。簡単な HTTP リクエストを投げるだけで JSON 形式の検索結果を取得でき、画像や動画検索もできるというなかなかの優れものです。
ということで、本日はこの SearchMash API を(受け売りで^^;)ご紹介しようと思います。
概要
API といっても、難しい手続きはなにもありません。検索結果を取得する手順は、以下の 2 つだけです。
- レスポンスとして返された 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 |
cacheUrl | Google のキャッシュの URL |
displayUrl | 検索結果に表示するドメイン名 |
title, snippet, displayUrl は、検索文字列とマッチした部分に B タグが挿入されています。ですので、表示する際は innerHTML にそのままぶち込む形で OK です。 HTML エスケープをかけてはいけません。
それぞれのメンバの詳細は私も把握していないですし、他のメディアの検索ではまったく違った情報が返ってくるようです。さすがに調べきれないので、代わりに検索結果を表示する Google ガジェットを作ってみました。必要な方は、実際にいろいろ検索して調査してみてください。詳細がわかったら、教えていただけるとうれしいです(他力本願^^;)。
予断ですが、 Google ガジェットは手軽に任意のサイトに HTTP リクエストが投げられるので、 Web API の実験には最適です。 Google ガジェットの作り方は以下の記事でご紹介しています。まだ書きかけですが、興味のある方はどうぞ。
本日は、 SearchMash の検索機能を利用するための API をご紹介しました。従来の Google の SOAP API や Ajax Search API に比べて、格段に利用しやすいものになっていますね。画像や動画検索もできますから、いろいろ楽しい応用が考えられそうです。皆さんもぜひ遊んでみてください!
詳しくはこちらの記事をどうぞ!
この記事にコメントする