MT の高速検索プラグイン「Fast Search」

シェアする

Fast Search の紹介

マイナな MT プラグインを埋もれないうちに紹介しよう、のコーナーがやってきました(世界はそれを余計なお世話と呼ぶんだぜ)。今回紹介するのは PHP を利用した高速検索プラグインです。

Fast Search – PHP Fulltext Search Plugin – Discussion

用意するもの

  1. Movable Type 3.2 以上
  2. mySQL 4.0.1 以上

インストール方法

  1. 上記のページから圧縮ファイル(FastSearch.zip)をダウンロード
  2. Win●y のキャッシュフォルダあたりに解凍する
  3. FastSearch フォルダ内にある php, plugins フォルダを MT のインストールディレクトリにアップロード
  4. MT3.3 の場合は MT 管理画面にログインするとアップグレードになるので Wii! と叫びながら指示に従う
  5. 各ブログの「設定」>「公開」にある「再構築オプション」を「テンプレート別に──」にする
  6. 同じく「設定」>「プラグイン」で Fast Search の設定(後述)をする
  7. 「テンプレート」>「インデックス」からテンプレートを新規作成
  8. テンプレートの名前は「fastsearch」でダイナミック・パブリッシングを有効にする
  9. テンプレートの中身は、通常の検索テンプレートを流用(後述)
  10. 転●のために PS3を 100 台買う(いまごろ遅くね?)

という感じ。みなさんのスルー力を期待しつつ、つまずきそうなポイントを挙げてみます。

プラグインの設定

最初、どうしてもうまく動かなかった(検索途中でエラーになる)のがこの部分。プラグインの設定で、英語以外の言語を使っているブログの場合、

FastSearch

というように「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 からインデックスを作って高速化」の部分が、日本語のせい(テキスト変換プラグインのせい?)で使えないのも直したい……。

──どうですか?> エロイ 人

コメント

  1. oscar より:

    これ、試してみようとダウンロードしたこと有ったんだけど、ダイナミックパブリッシング用だったんだよね。
    でも、そろそろ挑戦したいなぁと思ってたんで、参考にさせて貰います。

  2. asiamoth より:

    何かの参考になれば、これ幸い。プラグインの中身をいじることができれば、もっともっと面白くなりそう──な予感。

  3. footbrain より:

    Perl 版ダイナミック・パブリッシングで使う事ができなくて、一度諦めたのですが、.htaccessを修正して再挑戦中です。
    ただ、検索結果のテンプレートがおもいっきりPerl 版仕様になってしまっているので、手こずっています。
    Perl 版ダイナミック・パブリッシングで使えたら、
    それからこれをタグ検索にも使えたらとっても便利なんですけどね。

  4. asiamoth より:

    そうですよねー、いっそのこと Perl 版ダイナミックで、何でも彼でもできたら WordPress も目じゃない──かも。せめて、タグのページが生成できたらな、と一時期、一所懸命に改造を試みましたが、断念しました……。
    MTSQLという、SQL 文を書いてデータベースから直接データを持ってくる、というプラグインがあります。これをゴニョっとするのが究極っぽい。──けど、そこまで行くとブログツール使っている意味が……。