• 更新:
  • 投稿:
  • カテゴリィ:

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

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

[2] このページの一番上へ戻る