Tag/Ludia
PrivatePortfileでPostgreSQL+Ludia
PrivatePortfile で PostgreSQL + Ludia をMacにも入れてみたよ。
前回 の MySQL + Senna 時に LocalPortfile の設定とかはやってたので、今回はわりとすんなり進んだ(と思う)。
まずは PrivatePortfile/Senna-PostgreSQL82 からファイルをダウンロード。落としてきたファイルを展開して LocalPortfile に入れる。
$ tar jxf ./postgresql82-ludia-1.0.0.tbz2
$ cd ./postgresql82-ludia-1.0.0/databases
$ mv ./postgresql82-ludia /usr/local/src/localports/
で、ココで Ubuntu には Ludia -1.1.0を入れた事を思い出した。 Mac と Ubuntu でバージョンがズレるのはかなり避けたい!という事で Portfile 弄くってどうにか Ludia -1.1.0を入れる方向に決定。
とりあえず Portfile を見てみると以外に短い。で、いくつか気になるところがあったのでそこを書き換えていく事に。以下 Portfile のdiff。
7c7
< version 1.0.0
---
> version 1.1.0
15c15
< set sfj 24230
---
> set sfj 25644
20,22c20
< checksums md5 d558826f151268fb7b696440fc7937ce \
< sha1 f0da11f5dd8f9eb12f0233723dfafe9ec73be979 \
< rmd160 63668787f3378e742adf8a6e2c9867e7d5dcc82f
---
> checksums md5 4d784cfb6f3a5b0cfabf443efc588679 \
version は Ludia のバージョン。 sfj は sourceforge での Ludia の管理番号?か何か。 md5 は sourceforge の Ludia -1.1.0のところに書いてあったものをコピペした。
ココで PortIndex を更新する。
$ pwd
/usr/local/src/localports
$ sudo portindex
ついでに MacPorts 自体もアップデートしておいてから search してみる。
$ sudo port -d selfupdate
...
$ port search ludia
postgresql82-ludia databases/postgresql82-ludia 1.1.0 Ludia provides a fast full-text search interface for PostgreSQL.
ココまではちゃんと認識されてる模様。なのでインストールしてしまう事に。
$ sudo port install postgresql82-ludia
結構時間が掛かったものの、無事にインストールも完了したっぽい。 PostgreSQL のコマンドにパスが通ってなかったので若干焦ったけど、どうやらそういうものらしく、
- /opt/local/lib/postgresql82/bin/
- /opt/local/share/postgresql82/
にそれぞれ PostgreSQL と Ludia の一式が入ってた。
Ubuntuに入れた時 と同じようにテストしてみたけど問題無くちゃんと動いた!上手く行ったっぽい!
- Posted at:
- 2007/07/23 03:15:40
- 0 Comments
- 0 TrackBacks
- Trackback:
- http://humming.via-kitchen.com/2007/07/23/install-postgresql-plus-ludia-with-macports/trackback/
PostgreSQL+Ludia入れたメモ@Ubuntu
PostgreSQL やっとインストールしたよ。って言うより Ludia を触ってみたくていれたので、どちらかと言うと Ludia がメイン。
今回インストールしたのはこんな感じ。
- PostgreSQL -8.2.4
- Ludia -1.1.0
Senna は前に MySQL + Senna + tritonn インストール時に1.0.5を入れているのでそれを使いまわす。
とりあえずpostgresなユーザ作成から。
$ sudo useradd -m postgres
$ sudo passwd postgres
PostgreSQL は普通にビルドしてかまわないみたい。なので最低限のオプションだけつけてコンパイル。 --enable-multibyte っていつから無くなったんだろ?
$ ./configure \
>--prefix=/usr/local/pgsql \
>--enable-thread-safety
$ make
$ sudo make install
データディレクトリの初期化。
$ PATH="/usr/local/pgsql/bin:${PATH}"
$ sudo -u postgres mkdir /home/postgres/data
$ sudo -u postgres initdb -D /home/postgres/data --encoding=UTF-8
...
okな文字が流れてたので、 PostgreSQL を起動してみて、テスト用のデータベースを作っておく。
$ sudo -u postgres postgres -D /home/postgres/data &
$ sudo -u postgres createdb ludia_test
一通り上手く行っているようなので、ここから Ludia のコンパイルに入る。
$ ./configure \
>--with-senna-cfg=/usr/bin/senna-cfg \
>--with-pg-config=/usr/local/pgsql/bin/pg_config
$ make
$ sudo make install
Ludia をインストールすると /path/to/pgsql/share/ に一式はいるらしい。で、 PostgreSQL に Ludia を使うことを教えるために postgresql.conf を編集する。
custom_variable_classes='ludia'
ludia.max_n_sort_result = 10000
ludia.enable_seqscan = on
ludia.sen_index_flags = 31
ludia.max_n_index_cache = 16
ludia.initial_n_segments = 512
設定値はどっかに載ってたモノをコピペしたので良く解ってない。 custom_variable_classes に Ludia を追加する事だけは絶対って事だけ覚えた。
postgresql.conf の変更を反映させる為に一度再起動してから、さっき作ったデータベースに Ludia を使うのに必要な設定?とかを pgsenna2.sql を使って放り込む。
$ sudo -u postgres psql -f /usr/local/pgsql/share/pgsenna2.sql ludia_test
コレで一通り完了っぽい。上手く出来たかテストしてみる。
CREATE TABLE test1 (
id SERIAL,
body TEXT NOT NULL
);
INSERT INTO test1 (body) VALUES ('すもももももももものうち');
INSERT INTO test1 (body) VALUES ('ももから生まれた桃太郎');
CREATE INDEX test1_body ON test1 USING FULLTEXT(body);
SELECT * FROM test1 WHERE body @@ 'もも';
id | body
----+--------------------------
1 | すもももももももものうち
2 | ももから生まれた桃太郎
(2 rows)
ちゃんと部分一致で引っ張ってきてる。どうやら上手くいったっぽいよ!
ちょっとコレを期に PostgreSQL もちゃんと覚えようと思う。設定の仕方とか全然知らないし覚えてないし。
Ludia に関しては1.1.0から VACUUM に対応したり、設定が senna.conf から postgresql.conf に移ったりと、かなり使い勝手が上がってるみたい。ある程度まで( PostgreSQL の)使い方を覚えたら Django でも使ってみようかな?
全文検索は凄い!って事を再確認しましたとさ。
- Posted at:
- 2007/07/22 05:32:51
- 0 Comments
- 0 TrackBacks
- Trackback:
- http://humming.via-kitchen.com/2007/07/22/postgresql-plus-ludia-install-memo-at-ubuntu/trackback/