WebOS Goodies

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

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

簡単にサジェスト付き Firefox 検索プラグインを作る方法

当 blog ではサイト内検索を行う Firefox 検索プラグインを配布しているのですが、お気付きでしょうか(^^;。 Firefox をご利用の方は、当 blog のページを開くと検索ボックスの左のアイコンがうっすらと青くなるはずです(ただでさえ目立たない上に、スキンによってはまったく変化がなかったりしますが)。この状態でアイコンをクリックすると、メニューに「"WebOS Goodies" を追加」という項目が表示されますので、それを選ぶと当 blog のサイト内検索が追加されます。

ここまでは別に普通のことですが、ここからが本題です。この "WebOS Goodies" を選択して検索後を入力すると、 Firefox 2.0 の特徴である検索語のサジェスト機能がきちんと働くようになっています。ぜひ実際に追加して試してみてください。実はこのサジェスト、とても簡単に追加することができます。本日は、このサジェスト機能を自分で作った検索プラグインに簡単に取り入れる方法をご紹介します。

種明かし

Firefox 検索プラグインのサジェストの仕組みはこちらの記事で詳しくご紹介しています。基本的には検索語が入力された際に Firefox が自動的にサーバーに問い合わせを行い、サーバー側が所定の JSON 形式でサジェストに表示する文字列を返すことで実現されています。しかし、入力された検索語から最適と思える結果を想定するためには巨大なデータベースと途方もない処理が必要で、とても個人が実装できるものではありません。

それならばどうするか。そう、ここは Web の世界。 Web といえばマッシュアップです。既存のサービスを(勝手に^^;)利用すれば、途方もないことがいとも簡単に実現できます。もともと Google 検索プラグインにはサジェスト機能があるのですから、それを使わせてもらいましょう。つまり、サジェストの問い合わせ先を Google のサーバーにしているわけです。これならサーバーのプログラミングどころか、サーバーそのものが必要ありません。汎用のサジェストがサイト検索に対して有効なのかは甚だ疑問ですが、ないよりはマシでしょう。検索プラグインのソースにタグをひとつ加えるだけですから、付けないほうが損というものです。

サジェストの追加方法

それでは具体的な追加方法です。すでにサジェストなしの検索プラグインができているとすると、単に以下のタグをソースの SearchPlugin タグの中に追加するだけです。

<Url type="application/x-suggestions+json" method="GET"
     template="http://suggestqueries.google.com/complete/search?output=firefox&amp;client=firefox&amp;hl=ja&amp;qu={searchTerms}"/>

Yahoo! Japan のプラグインにもサジェストが付いています。こちらを利用するときは、以下のタグになるようです。ただし、動作確認はしていませんのであしからず。

<Url type="application/x-suggestions+json" method="GET"
     template="http://api.search.yahoo.co.jp/AssistSearchService/V2/webassistSearch">
  <Param name="p" value="{searchTerms}"/>
  <Param name="output" value="fxjson"/>
</Url>

追加したら、実際に Firefox にプラグインを追加して試してみてください。 Google (もしくは Yahoo!)と同じサジェストが表示されるはずです。

サジェスト対応検索プラグインジェネレータ

これだけではなんなので、サジェスト対応の Firefox 検索プラグインを生成するジェネレータを作ってみました。汎用にすることも可能なのですが、 Google のサービスを Google 検索以外に転用するのはどうかと思うので、 Google Custom Search Engine で作った検索エンジン専用です。

タイトル
ホームページ
説明
アイコン

「タイトル」、「ホームページ」は必須、その他は空白でもかまいません。「タイトル」は検索ボックスのメニューに表示される文字列、「ホームページ」は使いたいカスタムサーチエンジンのホームページの URL 、「説明」は任意の説明文(どこで使われるのか不明)、アイコンは検索ボックスのメニューに表示される 16x16 の画像の URL です。あとは「変換」ボタンをクリックすれば、下のテキストボックスに検索エンジンのソースが表示されます。このソースをどうすればいいかはこちらこちらの記事をご参照ください。

以上、本日は Google のエンジンを利用して自分の Firefox 検索プラグインにサジェスト機能を追加する方法をご紹介しました。マッシュアップとは素晴らしいものですね^^;。ご自分のサイトで検索プラグインを配布している方は、ぜひやってみてください。

関連記事

この記事にコメントする

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