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 %% 'もも';
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment