PostgreSQL

March 14, 2009

CakePHP 1.2JPUGつながりから勢いで開催が決定したらしいCakePHP勉強会@福岡 with PostgreSQL勉強会@九州に参加してきた。

参加者もかなり豪華で、CakePHPエバンジェリストなyandodさんをはじめshin1x1さんやsuzukiさん、さらにcakephper aka ichikawayさんが本州から参戦。

内容も初心者エントリーからコアなものまで、面白かった。
本州組の発表はさすがの内容。
プラグインとpgpool-IIはかなり興味深く、「取り合えずプラグインを作ってみよう」とcakephperさんと話が盛り上がった。
cakephperのexplain拡張は安元さんがめちゃくちゃ反応してた。
TDDのrytichさんの発表の流れはcodecheck.inノリ。TDDはいまだなじめず。頑張ろう。。


自分はCakePHPの多言語化機能を活用することからの流れでCakePHP Console Applicationの拡張の話をしようとしたのだけれども、demo環境が重すぎてタイムオーバー。
yandoさんの流れにちょうどかぶって、gitのbranch機能を使って「使用前/使用後」みたいなのを見せる流れがあったのに…残念。

View more presentations from k1LoW.


一言で言えば「bakeとi18nを使った開発手法は以外に強力で、その時に必要となるpoファイルのマージ機能は自分でConsole Applicationを作った」ということ。うわー簡単に言えたよ。


参加された皆さん、運営を仕切ってくださった清末さん、また本州からわざわざ来てくださったメンバーの方々、お疲れさまでした。


次回は分散リポジトリ勉強会ですね(2次会で決まった)。

February 17, 2009

CakePHP 1.2CakePHP勉強会@福岡がCakePHP-ja的な何か(よくわかっていません)とJPUG九州の尽力により開催が決定。


さらに募集は何と18日0:00。定員35名。


CakePHP勉強会@福岡

注目は発表者に安藤氏がいること。さらに東京のコアメンバーが。

すげー。このCakePHPの勢いにはびっくりした。


自分もしれっと運営でお手伝いをさせてもらいます。
今のところ特に何もしていないので、もっと頑張ります。LTは喋りたい。

January 11, 2008

PostgreSQL最近いろんな言語で正規表現を使うことがあるのだけれどもPostgreSQL(というかSQL)で正規表現が使えるということをはじめて知った。

以下みたいな感じで書けるらしい。


SELECT * from table where name ~ '[a-z]+';


うまく使いこなせれば強力。

May 17, 2007

PostgreSQLせっかくMySQLに全文検索エンジンを追加したのだけれども会社ではPostgreSQLを使うもんだからそっちの扱いのほうが慣れてしまった。

というわけでPostgreSQLにも全文検索エンジンを追加してみることに。

調べてみるとMySQLのようにソースから設定する必要がないので結構楽っぽい。

【前提】
OS:CentOS4.4
PostgreSQL:8.1.8
Senna:1.0.3インストール済
MeCab:0.95インストール済


【PostgreSQLインストール】
PostgreSQLのインストール
#yum install postgresql-server


自分のCentOSはcentosplusレポジトリを有効にしているのでPostgreSQLのバージョンは8.1.8になった。

PostgreSQLを起動
#/etc/init.d/postgresql start


この時点でpostgresユーザが登録されているのでパスワードを設定
#passwd postgres


さらにPostgreSQLのpostgresユーザにもパスワードを設定。
#su - postgres
$psql template1
template1=#alter user postgres with password '(ここにパスワード)';
template1=# \q
$exit



【Luidaインストール】
Luidaは全文検索エンジンSennaをPostgreSQLで使えるようにするモジュール。
Luidaにはpg_configが必要らしいのだけれども普通にpostgresqlパッケージだけインストールしてもpg_configはインストールされないらしい。
pg_configはpostgresql-devel*.rpmに入っているらしいのでyumでインストール。
#yum install postgresql-devel


以下のコマンドを実行してLuidaをインストール。
#wget http://keihanna.dl.sourceforge.jp/ludia/24230/ludia-1.0.0.tar.gz
#tar zxvf luida-1.0.0.tar.gz
#cd luida-1.0.0
# ./configure --with-senna-cfg=/usr/bin/senna-cfg
--with-pg-config=/usr/bin/pg_config
# make
# make install



/var/lib/pqsql/data/postgresql.confにLuidaの設定を追加

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


postgresql.confを反映
#/etc/init.d/postgresql reload


【データベース設定】
データベースtestdbに全文検索エンジンの機能を反映。これは必ずpostgresユーザ権限で実行する必要があるらしい。
#psql -U postgres -f /usr/share/pgsql/pgsenna2.sql testdb


全文検索用(N-gram)インデックスを作成。Sennaはマルチカラムインデックスには対応していないので、カラムごとにインデックスを使う必要があるらしい。
(例)
psqlコマンドで以下を実行するとtestdbのtest_columnというカラムのN-gramインデックスをindex_testdbとして作成する。
CREATE INDEX index_testdb ON testdb USING fulltextb ( test_column );


【参考URL】
http://centossrv.com/postgresql.shtml
http://kawa.at.webry.info/200703/article_3.html