ホーム DoRuby Ludiaインストールメモ@Centos52

Ludiaインストールメモ@Centos52

この記事はアピリッツの技術ブログ「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時間もあれば十分に導入できるかと思います。

記事を共有

最近人気な記事