Fast Search の紹介
マイナな MT プラグインを埋もれないうちに紹介しよう、のコーナーがやってきました(世界はそれを余計なお世話と呼ぶんだぜ)。今回紹介するのは PHP を利用した高速検索プラグインです。
Fast Search – PHP Fulltext Search Plugin – Discussion
用意するもの
- Movable Type 3.2 以上
- mySQL 4.0.1 以上
インストール方法
- 上記のページから圧縮ファイル(FastSearch.zip)をダウンロード
- Win●y のキャッシュフォルダあたりに解凍する
- FastSearch フォルダ内にある php, plugins フォルダを MT のインストールディレクトリにアップロード
- MT3.3 の場合は MT 管理画面にログインするとアップグレードになるので Wii! と叫びながら指示に従う
- 各ブログの「設定」>「公開」にある「再構築オプション」を「テンプレート別に──」にする
- 同じく「設定」>「プラグイン」で Fast Search の設定(後述)をする
- 「テンプレート」>「インデックス」からテンプレートを新規作成
- テンプレートの名前は「fastsearch」でダイナミック・パブリッシングを有効にする
- テンプレートの中身は、通常の検索テンプレートを流用(後述)
- 転●のために PS3を 100 台買う(いまごろ遅くね?)
という感じ。みなさんのスルー力を期待しつつ、つまずきそうなポイントを挙げてみます。
プラグインの設定
最初、どうしてもうまく動かなかった(検索途中でエラーになる)のがこの部分。プラグインの設定で、英語以外の言語を使っているブログの場合、
というように「non-Fulltext」を選ばないといけないっぽい。
──自分の環境ではこうしないと動かなかったのですが、何となくテキスト変換プラグインが関係していそう。すべての記事の改行設定を「変換無し」にしている人は、「Fulltext」を選んでテストしてみる価値あり。
というか、このプラグインは「Fulltext」ではないと速度が出ずに、魅力半減らしいです。「non-Fulltext」でも通常の Perl 版の検索よりは十分の早さですが。
テンプレートの変更
Fast Search を使いたいテンプレートで
<form method="post" action="<$MTCGIPath$><$MTSearchScript$>">
となっている部分を
<form method="post" action="<$MTBlogURL>fastsearch">
と変更します。もちろん、「インストール方法」で新規作成した、検索結果のテンプレート(fastsearch)も同様に変更します。
Perl 版ダイナミック・パブリッシングを使っている場合
MT で動的生成を使うときの .htaccess をダメ出し : 亜細亜ノ蛾 で紹介したように、Perl 版ダイナミック・パブリッシングを使っていると、通常はすべてのアクセスは mt-dynamic.php に渡されることになります。Fast Search はこのままだと動かないので、下記の修正を行います。
MT のインストールディレクトリにある .htaccess ファイルの
RewriteRule ^(.*)$ /mt/mt-dynamic.php [L,QSA]
の部分よりも前に下記を追記します。
RewriteRule ^fastsearch$ /mt/mtview.php [L,QSA]
まとめ
──と、ここまでやってようやく設置できました。試しに検索を行ってみると、このような結果になります。
デスノート : Fast Search Results : 亜細亜ノ蛾
うーん、ちょっと早くなった? みたいな。Google Co-opでアサマシック天国 : 亜細亜ノ蛾の方がいいかなー、と。
ただ、このプラグインをちょっとゴニョると、超高速なタグ検索プラグインになるような気がする。そもそもこのプラグインの肝である「MySQL からインデックスを作って高速化」の部分が、日本語のせい(テキスト変換プラグインのせい?)で使えないのも直したい……。
──どうですか?> エロイ 人