Blog

mod_search_rast 0.0.2リリース - A9 OpenSearchサポート

By Hiroyuki OYAMA Mon May 9 00:48:00 2005

mod_search_rast 0.0.2リリース。複数のテンプレートとエンコーディングをサポートしA9 OpenSearchやRSS 1.0など、検索結果のXMLによる取得などなどをサポートしました。ってテストしてませんけど(汗)

version 0.0.2での変更点

主にA9 OpenSearch対応を主眼に改修を加えました。version 0.0.1ではテンプレートは同時に1種類しか指定できませんでしたが、version 0.0.2ではRastAddViewディレクティブを使用して、任意の数のテンプレートを使用することが可能になりました。
RastAddView  osrss  /path/to/a9_opensearch.xml "application/xml; charset=UTF-8"
RastAddView  rss10  /path/to/rss10.rdf  "application/rss+xml; charset=UTF-8"
RastAddView  google /path/to/googlike.html "text/html; charset=EUC-JP"
上記のような設定で検索結果を3種類の形式で取得できます。一つ目は A9 OpenSearchに(たぶん)対応した形式のXMLで、エンコーディングはUTF-8。二つ目はRSS 1.0でエンコーディングは同じくUTF-8。三つ目はデフォルトとは別の見た目のHTMLによるページで、エンコーディングはEUC-JPです。また、mod_search_rastはRastAddViewで指定したcharsetを元に、出力するコンテンツのエンコーディングを決定します。変換にはICUライブラリを使用しています。

これらRastAddViewディレクティブで指定したテンプレートはURIのパラメータtype=で指定できます。例えばA9 OpenSearchに登録するURLは次のような形式になるでしょう。
http://www.example.com/search?q={keyword}&type=osrss&ie=UTF-8
ちなみにURIパラメータ ie= で入力される検索ワードのエンコーディングを指定できます。

サンプルとして
  • sample/a9_open_search.xml
  • sample/rss10.rdf
などを添付してありますので参考にしてみてください。

見た目重要

mod_search_rast top pagemod_search_rast result pagegooglikeサンプルテンプレートを作る過程で、デフォルト(内蔵)のテンプレートもちょっと変更してGoogle風(いいのかなぁ...)にしてみました。馴染みがあって良いかなと。ちなみに色もGoogleしたい場合は sample/googlike.htmlファイルをRastSetResultViewディレクティブで指定してあげてください。
あ、version 0.0.1では、検索結果の画面で使用するテンプレートはRastResultTemplateディレクティブを使用していましたが、version 0.0.2ではRastSetResultViewディレクティブに名称が変更されましたので注意っす。

ダウンロード

version 0.0.2からICUが必須になりましたので注意してください。
mod_search_rast 0.0.2
ICUが無い場合はエンコーディング変換機能を潰すとか、工夫した方がいいのかもしれませんね。例によってMac OS X 10.3.9でしかテストしてません。

今後の予定

とりあえず猛烈にコードが汚いので要クリーンナップ(あえてリファクタリングとは言わない)なのですが、それは後回し。現状の実装では検索結果をキャッシュする仕組みが無いのでパフォーメンス面で若干よろしくありませんので、キャッシュ機能の追加を先にやっておこうかなと思います。あとはテンプレートの実装が怪しすぎるので、その改修ですね。パッチ待ってます。

Comments

Post a comment

Name:


URL:


Comments:


WebエンジニアのためのApacheモジュールプログラミングガイド

ApacheをHackする!
モジュールプログラミング強烈初体験!!
定価: 2,919円(税込)
ISBN: 4-7741-1799-4

hiroyuki_oyama IM status

Apache Users

Apache Modules

CPAN


Home > Blog > mod_search_rast 0.0.2リリース - A9 OpenSearchサポート