途中まで書いて長くなりそうだったので、環境構築とコーディングの2部構成にします。まずは環境構築です。
全文検索っていっても名寄せとかしてないからただ単にSQLでいうところのLike検索とおんなじなんですけど、RDBじゃなくてKVS使うところがポイントです。
「なんでMySQLとかのRDBじゃなくてKVS?」っていうところは長くなるので割愛します。まぁcount()が遅かった、っていうだけなんですけどね。アレはチューニングでどにかなるのかなぁ。
TokyoCabinetのインストール
wget http://fallabs.com/tokyocabinet/tokyocabinet-1.4.47.tar.gz
tar zxfv tokyocabinet-1.4.47.tar.gz
cd tokyocabinet-1.4.47
./configure
make
make install
これだけ。
インストールにはいろいろ諸々必要なのですが、ハセテツの環境だとbzip2-develだけいれれば大丈夫でした。まぁ足りなければ./configureで教えてくれるでしょう。
Tokyo Tyrantは今回はインストールしません。Pythonから直接Tokyo Cabinetを叩きます。
次はPythonからTokyo Cabinetを叩くためにpython-tokyocabinetをインストールします。
pip install tokyocabinet
/etc/ld.so.conf に
/usr/local/lib
を追記して
/sbin/ldconfig
これまた簡単。’12.4月時点でバージョン0.5がインストールされます。
#! /usr/bin/python
# -*- coding: utf-8 -*-from tokyocabinet import btree
tc = btree.BTree()
tc.open(‘test.tcb’, btree.BDBOWRITER | btree.BDBOCREAT)tc[‘key’] = ‘Hello TokyoCabinet’
print tc[‘key’]
tc.close()
上記サンプルが実行できて、「Hello TokyoCabinet」と表示されれば成功です。