mt-search.cgiの代替プログラム。
公開日 : 2007-01-25 18:11:47
mt-search.cgi は実際にビジネスブログ等で使うのはちょっと非力な気がするので (一定時間置かないと再検索できなかったり、タグの中身も検索してしまったり検索速度の問題もあるし) 、代替プログラムを書いてみた。
PHPでMySQLを検索するという手もあるわけだが、MySQL限定っていうのもMTらしくないし、かといって重たくなっても嫌なのでプログラム自体はMT APIを利用したPerlプログラムとして、PHPからPerlを呼び出して検索するようにした。SQLで検索せず正規表現で一つ一つマッチするかどうか見ている。
SQLで検索するよりは不利だけど、CGI起動の待ち時間が無いので体感速度的にはまずまずかと。
同じプログラムでCGIでも動作するように作ったので一応両方同じ動作をする。
ローカルで1000エントリ(SQLite)程度を対象に検索して0.2〜0.3秒。
公開用に設置している以下の環境ではマシンがちょっと非力ではあるけどMySQL、エントリー数は100強。
せっかくなので、PHP版:
※1月31日追記:PHP版をHyper Estraierを使用したものに変更しました。
CGI版:
mt-search.cgi:
※広告↓貼っておいて何ですが、MT構築・カスタマイズは当社へ!
機能としては、
- Blog名(+description)、カテゴリー名(+description)、エントリー名+エントリー本文(+text_more,excerpt,keyword)を対象とする
- タグの中身は検索しない (画像のALT属性は検索する)
- Blog名、カテゴリー名でも検索するかどうかは設定で変更できる
- 指定した件数でページ送り
- スペース区切りでand検索
# このまま移転しちまおうかな...