Ludiaを試してみた

| コメント(0) | トラックバック(0)



とあるプロジェクトで全文検索できるようにLudiaを入れてみた。インストールは普通に:



tar -xvzf ludia-0.8.0.tar.gz
cd ludia-0.8.0
./configure \
--with-senna-cfg=/usr/local/bin/senna-cfg
--with-pg-config=/usr/local/pgsql/bin/pg_config
make
sudo make install
/usr/local/pgsql/bin/psql -U postgres mydb -f pgsenna2.sql

なんでかしらんけどinstall-shに実行ビットが立ってなくてmake installの前にchmod u+x install-shする必要があった。あとはインデックスを作るだけ。



CREATE INDEX table_field1_senna_idx ON table USING fulltextb (field1);
CREATE INDEX table_field2_senna_idx ON table USING fulltextb (field2);
...

マルチカラムインデックスを使えないのが痛いのだが、とりあえずDBIx::Classで吸収する。



my $query = "hoge";
my @where;
foreach my $field qw(field1 field2 field3 field4) {
push @where, { $field => { '@@' => $query } };
}
my $rs = $schema->resultset('Hoge')->search(\@where, \%attrs);

これでとりあえず全文検索できる感じ。


Author

Daisuke Maki (a.k.a lestrrat): Perl hacker, Director of Japan Perl Association, YAPC::Asia Tokyo Organizer (2009-2012), Fluent in Japanese, English. Ex-Brazilian (sorta)

#perl #c #ruby #java #mysql #english #japanese #opensource #stf #cooking #scotch #cigar


このエントリーをはてなブックマ
ークに追加

翔泳社よりモダンPerl入門(2010)を出版させていただいております。できれば内容をアップデートしたいので是非皆様・・・現在の在庫処理にお力をお貸しください!><

月別アーカイブ