目次
この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。
こんにちわ、uです。
最近、Ruby on Railsアプリケーションの全文検索システムとして、
Hyper Estraierから、Ludia@PostgreSQLを使う事が多くなってきたので、
CentOS 5.2へのインストール方法を、紹介したいと思います。
# そろそろ、CentOS 5.3が出ますので、
# CentOS 5.2を使用するのは、時期的に微妙なのですが…
実験環境
CentOS 5.2
# 正確には、CentOS 5.2のxen上のゲストOS
ludia-1.5.1
postgresql-8.3.5
mecab-0.97
mecab-ipadic-2.7.0-20070801.tar.gz
senna-1.1.4
Ludia installationファイルの閲覧
# ludia-1.5.1/INSTALLの通り実行。
wget http://osdn.dl.sourceforge.jp/ludia/32461/ludia-1.5.1.tar.gz
tar zxvf ludia-1.5.1.tar.gz
cd ludia-1.5.1
less INSTALL
MeCabのインストール
以下等から、mecabを取得
http://sourceforge.net/project/showfiles.php?group_id=177856
cd /usr/local/src/
tar zxvf mecab-0.97.tar.gz
cd mecab-0.97
./configure --with-charset=utf8
make
sudo make install
MeCab辞書のインストール
以下等から、mecabを取得
http://sourceforge.net/project/showfiles.php?group_id=177856
cd /usr/local/src
tar zxvf mecab-ipadic-2.7.0-20070801.tar.gz
cd mecab-ipadic-2.7.0-20070801
./configure --with-charset=utf8
make
sudo make install
sennaのインストール
cd /usr/local/src
tar zxvf senna-1.1.4.tar.gz
cd senna-1.1.4
./configure
make
sudo make install
Ludiaのインストール
wget http://osdn.dl.sourceforge.jp/ludia/32461/ludia-1.5.1.tar.gz
tar zxvf ludia-1.5.1.tar.gz
cd ludia-1.5.1
make
sudo make install
PostgreSQLのインストールと実行
以下によりますと、v8.3.6だとデフォルトだとうまく入らない様です。
http://jijixi.azito.com/cgi-bin/diary/index.rb?date=20090302
v8.3.5では、INSTALLの通り実行すれば問題無く入るかと思います。
cd /usr/local/src/
tar zxvf postgresql-8.3.5.tar.gz
cd postgresql-8.3.5
cat INSTALL
./configure
gmake
su
gmake install
adduser postgres
mkdir /usr/local/pgsql/data
chown postgres /usr/local/pgsql/data
su - postgres
/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data
ludia-1.5.1/READMEを見てみると…
設定ファイルの編集
------------------
デフォルト設定でLudiaを使用する場合は、この節を飛ばしても問題ありません。
Ludiaを使用するデータベースクラスタのpostgresql.confファイルに、
以下の設定内容を追加してください。
(custom_variable_classesの項目は必須です。
それ以外の項目は記述しないと、デフォルト値が参照されます。)
設定を反映するためにはPostgreSQLを再起動する必要があります。
postgresql.confの設定が反映されていないと、
実行時にエラーになってしまうので注意してください。
設定内容についての詳細は、 実行時の設定_ の節を参照してください。
::
custom_variable_classes = 'ludia'
ludia.max_n_sort_result = 10000
ludia.enable_seqscan = on
ludia.seqscan_flags = 1
ludia.sen_index_flags = 31
ludia.max_n_index_cache = 16
ludia.initial_n_segments = 512
もしすでにcustom_variable_classesが設定されている場合は、
そこにludiaというクラス名を追加してください。
…との事なので、以下を記述
vim /usr/local/pgsql/data/postgresql.conf
#------------------------------------------------------------------------------
# LUDIA OPTIONS
#------------------------------------------------------------------------------
custom_variable_classes = 'ludia'
ludia.max_n_sort_result = 10000
ludia.enable_seqscan = on
ludia.seqscan_flags = 1
ludia.sen_index_flags = 31
ludia.max_n_index_cache = 16
ludia.initial_n_segments = 512
PostgreSQLの実行
/usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data >logfile 2>&1 &
Ludia対応なDBにする。
/usr/local/pgsql/bin/createdb testdb
/usr/local/pgsql/bin/psql -f /usr/local/pgsql/share/pgsenna2.sql testdb
/usr/local/pgsql/bin/psql testdb
確認
後は、ludia-1.5.1/READMEの通り、
固有のindexを作成したり、@@等の演算子を使ったSQL文が正常に動作すれば、
PostgreSQLにLudiaが正常に組み込まれたと見てよいかと思います。
いくつかのアプリケーションを導入する必要はありますが、
Ludia(とPostgreSQL)のINSTALLの通り実行するだけで、
あっけなく1時間もあれば十分に導入できるかと思います。