Tuesday, April 28, 2009

ludia 1.5.1 and senna (search fulltext) install and configure for postgresql(ludia とsenna インストールと設定)

LudiaはSennaを使ったPostgresSQL用の組み込み型全文検索インデックスエンジンです。
ダウンロード

下記サイトからダウンロード。

http://sourceforge.jp/projects/ludia/

Mecab、MeCab辞書、Sennaが含まれているludia-withdepsのパッケージをDLします。
インストール
解凍

$tar -zxvf ludia-withdeps-1.5.1.tar.gz
$cd ludia-1.51/deps

MeCabのインストール

分かち書き方式に形態素解析を利用しない場合は、 MeCab(と辞書)をインストールする必要はありません。その場合はSennaのインストールに進んでください。 (MeCabをインストールしない場合はSennaのインストールの際に、 --without-mecabオプションを指定する必要あり)

MeCabをインストールする場合は、アーカイブを展開し、以下の要領でビルドとインストールを行います。:

$ tar -zxvf mecab-0.97.tar.gz
$ cd mecab-0.97
$ ./configure --with-charset=utf8
$ make
$ su
# make install

MeCab辞書のインストール

アーカイブを展開し、以下の要領でビルドとインストールを行います。:

$ tar -zxvf mecab-ipadic-2.7.0-20070801.tar.gz
$ cd mecab-ipadic-2.7.0-20070801
$ ./configure --with-charset=utf8
$ make
$ su
# make install

Sennaのインストール

アーカイブを展開し、以下の要領でビルドとインストールを行います。:

$ tar -zxvf senna-1.13.tar.gz
$ cd senna-1.13
$ ./configure
$ make
$ su
# make install

MeCabをインストールしていない場合には、以下のように --without-mecab オプションの指定が必要

$ ./configure --without-mecab

Ludiaのインストール

アーカイブを展開し、以下の要領でビルドとインストールを行います。:

$ ./../../
$ ./configure
$ make
$ su
# make install

pg_configコマンド、senna-cfgコマンドのインストール先にPATHが設定されていない場合、以下のようにそれぞれのpathをconfigureオプションで指定してください。:

$ ./configure --with-pg-config=/usr/local/pgsql/bin/pg_config --with-senna-cfg=/usr/local/bin/senna-cfg

インデックスアクセスメソッドの登録

$ psql -f /usr/share/pgsql/pgsenna2.sql testdb -u

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

インデックスの作成

インデックス作成例:

CREATE INDEX student_fulltext_index_name
ON student
USING fulltext(studentname);

検索クエリ

SELECT * FROM student WHERE studentname %% 'もも';

No comments:

Post a Comment