OpenSearch使ったお手軽検索ページ構築 | HardReggaeCafe@Ameblo.jp

OpenSearch使ったお手軽検索ページ構築

もっと簡単にいろんな検索ページを作ってみたくないですか?


検索エンジンを作ることは大変な労力がかかるからやりたくないけど
検索窓だけ自分のサイトにつけてGoogleにフォワードするだけとか
とっても味気ない。


キーワードを投げたら、結果をファイルでもらってあとは加工するだけ。
WEBサービス使って検索するとか面倒すぎるンですけど・・・。


こんなインターフェースを標準化したのがAmazonの検索サイトA9。

検索クライアントからキーワードを渡せばRSSライクな形で結果を返すOpenSearchという
プロトコルを開発しました。はてなとか求人サイトの仁王とかが採用してます。
恐らくこれを採用したサイトはこれからも広がっていくはず。


普通の使い方として、
[1] OpenSearch Description Documentsに向けて、検索キーワードを投げます
[2] するとその結果はRSSになって返ってくるので、ここからタイトル、概要、
  URLなどを抽出してループで結果表示させる

こんな簡単なんだけどやっぱりAPIがないと使いにくい。ということで
言語はなんでもいいんだけど、最も簡単なPHPでAPIを探しました。
http://pear.php.net/pepr/pepr-proposal-show.php?id=336


PHPのライブラリPEARにβ版として登録されているんだけど、
あんまり細かい説明がないのがちょっとミソ。元々はPerlのCPANモジュール
だった同名のプログラムをMasaaki Hirose氏が移植したもの。


自分の借りているさくらインターネットで使うためにはその他のPEARモジュール
もインストールする必要がありますが、管理者権限の都合で普通にインストール
できません。そこで必要なものを集めてパスの切り方などに手を入れました。

余談ですがさくらは.htaccessもつかえない模様。ほぼ全てのPHPを修正しました。

これをGzip圧縮したものを当方のサイトで公開してます。非サポート前提で
使ってみてください。
OpenSearch ←ここをクリック

【使い方】
(1)さくらインターネットのケースを想定していますが、自分のドキュメントルート
   に上記ファイルを展開します。
(2)os.phpを拡張して検索ページを作成する

この際$urlにOpenSearch Description Documentsのアドレスを入れます。
$os->search('PHP')のPHP部分に検索キーワードを入れます。
日本語はまだ試してません。この辺は追って結果をお伝えします。


Linuxコマンドで
php os.php
と叩くときちんと結果が表示されることが確認できますね。


まあ、検索窓のページからFormタグでキーワードを送って、結果ページに
os.phpを使えば普通に検索ページ作れそうなんだけど、その辺はまた今度。