PythonからTokyo Cabinetを操作して全文検索を実装する-まずは環境構築

途中まで書いて長くなりそうだったので、環境構築とコーディングの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」と表示されれば成功です。