それは日本語でトピックを検索すると、hitするワードとhitしないワードがあること。
phpBB備え付けの検索の場合、自前でキーワード分割しているそうで、特に日本語の分割がもう1つ直感的でないのが困った。
phpBBは検索バックエンドを、phpBB自前とMySQLにお任せするモードの切り替えができる。
じゃあ、MySQLに組み込みで日本語もOKな全文検索エンジンTritonnを使ったら解消するんじゃなかろーか。
ということでやってみた。
環境:
CentOS:5.2(元5.1、yumでupgrade)
php:5.1.6-20.el5_2.1
phpBB:3.0.2
MySQL:Tritonnプロジェクトが配布しているもので置き換える
手順メモ:
- 既に起動しているmysqldを停止
# /etc/init.d/mysql stop
- mysqlをアンインストール
ここの環境では、すでにmysql(5.0.45)がインストールされていたが、削除する。
php-mysqlが依存していて削除できなかったので--nodepsで強行# rpm -e --nodeps mysql mysql-server
- ハマったのがphpのモジュール。
ここの環境では「php-mbstring」がインストールされておらず後々ハマることに。
別の場所のCentOS5.1には入ってたんだけどな~。何の依存だったんだろう・・・。
とにかくyumでインストール# yum install php-mbstring
- tritonnプロジェクトからrpmを入手しインストール
http://sourceforge.jp/projects/tritonn/files/
MySQL-client-5.0.51a-tritonn.1.0.10.i386.rpm
MySQL-server-5.0.51a-tritonn.1.0.10.i386.rpm
MySQL-shared-5.0.51a-tritonn.1.0.10.i386.rpm
mecab-0.97-tritonn.1.0.10.i386.rpm
mecab-ipadic-2.7.0.20070801-tritonn.1.0.10.i386.rpm
senna-1.1.3-tritonn.1.0.10.i386.rpm# rpm -Uvh ダウンロードしたrpm
- 共有ライブラリを更新したので一応リフレッシュした
# ldconfig # /etc/init.d/httpd restart
- phpBBをセットアップする
phpBB本家からアーカイブを入手
適当な場所に展開
apache経由で参照できるようにconf設定
database作って、
ブラウザでセットアップ開いて、指示に従って終了 - Admin CPに入る
- [メイン]タブ → サーバ設定 → 検索設定
検索バックエンドを「Fulltext mysql」に変更
「latin系キャラクタセット以外のUTF-8文字の使用(mbstringによるサポート)」が「はい」になっていることを確認。ウチの環境の場合、「PCREによるサポート」は「いいえ」になってる。
で保存 - [メンテナンス]タブ → データベース → 検索インデックス
「Fulltext mysql」の「インデックス作成」を押す
- [メイン]タブ → サーバ設定 → 検索設定
これで準備完了。
後は適当にトピックを書き込んで検索するだけ。
結果は期待通り上々。
なんというか抽象化・隠蔽の妙を見た、という感じ。多謝多謝。
>> Home