象と戯れ

 | 

2010-06-28

textsearch_sennaをWindowsにインストールする手順

02:23 | textsearch_sennaをWindowsにインストールする手順 - 象と戯れ を含むブックマーク はてなブックマーク - textsearch_sennaをWindowsにインストールする手順 - 象と戯れ

textsearch_sennaも8.4.5になってだいぶ安定してきた様子。参照系ですが、結構大規模なケースで既にサービスインしてるものもあります。そんなわけで社内からもたまにtextsearch_sennaがインストールできなくてこのブログに到達する人がいるみたいだし、ちょくちょく「textsearch_senna インストール」てなキーワードでこのブログが踏まれているようなので、今回はWindowsにインストールする方法を纏めます。ちなみにプロジェクトのページの「インストール」のセクションが

以下の外部プロジェクトに依存しています。

* PostgreSQL : 8.2 以降

* Senna : 1.1.4 で動作確認。MeCab は不要です。

のみ、というのはご愛敬。

下記は本日時点でのバージョンを元にしています。

PostgreSQLの準備

PostgreSQLの本体はインストールされていますね?インストールディレクトリはC:\Program Files\PostgreSQL\8.4としますがそれ以外の方は適宜読み替えて下さい。このディレクトリを今後%PGHOME%とします。

libsennaのインストール

最初にsenna本体をインストールします。インストールといっても、ファイルを置くだけ。

http://pgfoundry.org/frs/?group_id=1000298

から、

http://pgfoundry.org/frs/download.php/2147/senna-1.1.4-win32_no_mecab.zip (v1.1.4)

又は

http://pgfoundry.org/frs/download.php/2751/senna-1.1.5_win32.zip (v1.1.5)

をダウンロードして展開、libsenna.dllを下記のフォルダに保存します。

%PGHOME%\bin

ここで間違えやすいのが、%PGHOME%\libに入れる人。PostgreSQLが直接読み込むモジュールはlibに置くのですが、そのDLLが呼び出す別なDLLWindowsの%PATH%又は実行ファイルのディレクトリに存在しなければなりません。なので、WINDOWSフォルダとかでもいいのですが、とりあえず今回は%PGHOME%\binに入れておきましょう。

ちなみにlibsenna.dll以外は要りません。その他のファイルはさっさとゴミ箱へ(おい)

さらにちなみに、senna1.1.4とsenna1.1.5の違いはほとんどありません。聞くところによるとUNICODEの正規化(NFKC)で拡張されるバイト数を1.1.4では4バイト固定で確保してたところ、どうもアラビア語の一部でもんのすごく長くなるんだとか。調べる限りこれかな。これが来てもおちないように頑張ったんだと。なのでアラビア語を使わない人は1.1.4でも大丈夫だと思います。

textsearch_sennaのインストール

次がtextsearch_sennaの本体です。

http://pgfoundry.org/frs/download.php/2750/textsearch_senna-8.4.5_win32_pg84.zip

をダウンロードして展開、こちらは%PGHOME%\libに入れてください。以上。こちらもtextsearch_senna.dll以外に必要なのはtextsearch_senna.sqlだけです。この二つを除いて他のファイルは(略

textsearch_sennaDBに登録

動作させたいDBに接続して、textsearch_senna.sqlの内容をコピペするだけ。以上。一応確認手段として

SELECT 'a'::senquery;

とかやるといいでしょう。

FAQ
ERROR:  could not load library "C:/Program Files/PostgreSQL/8.4/lib/textsearch_senna.dll": The specified module could not be found.

というエラーが発生することがあります。メッセージを読むとtextsearch_senna.dllが無いかのように見えますが、ちゃんと置いてあります。答えはlibsenna.dllがパスの通ったところに置いてない。ちゃんと%PGHOME%\binに置きましょう。


まとめ

textsearch_sennaWindowsにインストールする方法を丁寧に説明しました。手順を再確認すると、

簡単ですね。モジュール自体は安定しているので今後PostgreSQLの本体に大きな変更が無い限り上記の方法でしばらくは行けるはずです。

今日久しぶりにPgFoundryを見たらEUDCというファイルもアップしてあります。2010年3月だから見逃していただけか。どうも外字領域に対するモジュールみたいです。ちなみに最近仕事でひらがなとカタカナの相互変換とか半角カタカナの全角化とかのモジュールを書いたのですが、オープンソースにしたらみんな幸せなんでしょうか。ニーズがあれば公開したいですね。

 |