TokyoTyrantのRDBQRYで否定条件を試す
2010年9月22日
試すというか、やり方がわからなかったんで、調べたメモ。
合致条件の真偽を反転させるには、各演算子と `TDBQCNEGATE' のビット和を用います(コマンドラインでは "~" を接頭させます)。 http://fallabs.com/tokyocabinet/spex-ja.html
って書いてあるけど、どうやってやるのかわからな(ry
addcondで、$qry->QCNEGATEを指定すればいいのはわかったんですが、どうやってやるのかわからな(ry
で、調べたり、色々やった結果、「|」で繋げばいいらしい。
use TokyoTyrant; my $rdb = TokyoTyrant::RDBTBL->new(); $rdb->open("localhost", 1978) or die "open error: ".$rdb->errmsg($rdb->ecode); my $qry = TokyoTyrant::RDBQRY->new($rdb); # nameにhogeを含む $qry->addcond( 'name' , $qry->QCSTRINC, 'hoge'); # nameにfooを含まない $qry->addcond( 'name' , $qry->QCSTRINC | $qry->QCNEGATE, 'foo'); my $res = $qry->search();
そのうち、もう少しサンプルをまとめておきたいなぁ。
ちなみに、TokyoTyrantの略称はTTなんですかね?
Template::Toolkitが、TT2なんで、微妙に間違えません?w