kumasearch.cgiをバージョンアップしました。
◆関連記事:mt-search.cgiの代わりの検索プログラムを作ってみた。
で公開しているmt-search.cgiの代わりに利用できる高速な検索cgiですが、バージョンアップしましたのでご報告しておきます。
MySQL環境で使ってみた方らご連絡を頂いたのですが、検索できないとのことで調べてみました。こちらでも調査用にMySQL環境で新規インストールして環境を作ってみました。
で、まあ、このブログのログを新規環境にインポートしようとしたところでいったんハマりましたw。インポートしたもののインポートの途中でエラーになるし、入った分も文字化けしてどうしようもないんですね。
で、色々調べてみたところmt-config.cgiに下の1行を追記するだけで済みました。場合によってはテーブルかDBを削除してからやり直したす必要があるかもしれません。
SQLSetNames 1
◇関連:XREAのサーバーでMySQL5を使っているとMovable Type4をインストールするとそれまで使っていたデータベースのデータが文字化けするようだ。: マイチキンハート
◇関連:Movable Type+MySQLで(本来はSET NAMES cp932と発行すべきなのに)SET NAMES sjisをMySQL Serverへ発行してしまう問題 – hirohama.mt
で、実際新しく作った環境でkumasearch.cgiで検索してみると検索できませんでした。英単語での検索だと引っかかるので文字コードがらみであることが予想できました。
しかし、英単語で検索された際の検索結果の文字まで文字化けしています。どうやらMySQLが返してくる文字コードがUTF-8じゃない模様。その関係で検索引っかからないと思われ。
ログのインポート後の文字化けの問題も関係ないのかと思ってたらこの件らしく結局MySQLがらみの問題でした。MySQLがバージョン4ぐらいから文字コードを分けたらしいですね。クライアント側で明示してクエリーを発行しろということらしいです。普段はUTF-8固定のSQLiteを使ってるのでMySQLがこんな仕様だとは知りませんでした。
◇関連:MySQL/UTF8 – asakura
◇関連:へぼへぼCTO日記 – libmysqlclientを使うプログラムはset namesをutf8であっても使ってはいけない
そういうわけで、MySQL時は
set names utf8
して
connect時にmysql_server_prepare=1
も付けるようにしました。
一応これでMySQL5.1の環境で検索できるようになりました。
MySQLで動かなかった人はお試しください。
最新版は一番上のリンクの先のページからダウンロードして下さい。
タグ : Movable Type, MT, mt-search.cgi
はじめまして。
「超高速自前検索」で、動作見させていただきました。
とても速く、是非導入したいと思い、早速ダウンロードさせていただきました。
有難うございます。
MT5、mysqlの環境ですが、
残念なことに、設置後動作確認したところ「error:file open error」の画面表示となります。
MT5では動作しないのでしょうか?
お忙しいところ大変恐縮ですが、
ご回答いただけると助かります。
こんにちは。
MT5については作った時期もだいぶ前なので正式に対応はしていませんが、こちらで試した限りでは一応検索できるようです。環境に関しては以下の通りです。
バージョン:mtos 5.04
文字コード:UTF-8
MYSQL:5.1.22-rc
perl:5.8.8
スタティックパブリッシング
設置サーバは:CORE-MINI
設置は下記のページで行ったとおりです。
http://blog.kumacchi.com/2009/08/mt-searchcgi_1.html
「error:file open error」のエラーが出る場合は設置場所の問題です。
mt-config.cgiがあるページにkumasearch.cgiが入ったkumasearchフォルダを丸ごとアップロードしていないと上記のエラーが出ます。
というか説明不足ですが上記のエラーはmt-config.cgiが見つからないというエラーです。
あと文字コードに関してはUTF-8以外ではではうまく動かないと思います。
パブリッシングについてはダイナミックでも問題ないとは思います。
それから、MT5を本格的に運用したことがないのでわからないのですが、MT5の検索が相変わらず遅いのかは知らないので、本当に必要なのかを見極めてご利用下さい。