はじめてのtokyocabinet

mixiさんのエンジニアブログに載っていた
下記の記事に触発されてtokyocabinetを使ってみたのでその手順のメモ


オレオレ検索窓を設置しよう - mixi engineer blog


まずはインストールからしなくてはいけないので
ネットで調べてyumで必要なパッケージをインストール。

yum -y install bzip2-devel zlib-devel

次にtokyocabinetwgetで拾ってきてinstall
僕が見たときは最新のバージョンが1.4.45だった。

参考:http://fallabs.com/tokyocabinet/

wget http://fallabs.com/tokyocabinet/tokyocabinet-1.4.45.tar.gz
tar xzvf tokyocabinet-1.4.45.tar.gz
cd tokyocabinet-1.4.45

./configure
make
make check
make install

無事インストールが完了!

tokyocabinetの起動、動いてるっぽい。

tctmgr version

Tokyo Cabinet version 1.4.45 (908:1.0) for Linux
Copyright (C) 2006-2010 Mikio Hirabayashi

あと、mixiのブログに載っていた手順でindexの作成
折角なのでクロール先はこのブログにしてみる。

ruby wgettsv -allow 'http://d\.hatena\.ne\.jp/yutadayo' \
-max 10000 'http://d.hatena.ne.jp/yutadayo/' > intra.tsv

10分くらいでクロールが完了。わりとかかったな。

コマンドを打ってインデックスの作成を試みる。

tctmgr importtsv tctsearch.tct intra.tsv
tctmgr setindex -it qgram tctsearch.tct title
tctmgr setindex -it qgram tctsearch.tct body

ここは数秒で完了。

検索UIもtokyocabinetに入っていたやつを使わせてもらった。
exampleディレクトリからコピーしてcgiが動くディレクトリに持ってくる。
exampleディレクトリでmakeしてできるtctsearch.cgi と tctsearch.tmplというファイルね。
先ほど作ったインデックスファイル(tctsearch.tct)も同じディレクトリに移動させておく。

cd tokyocabinet-1.4.45/example
make
cp tctsearch.cgi tctsearch.tmpl ~yutadayo/work/tokyocabinet
mv ~yutadayo/tokyocabinet/tctsearch.tct ~yutadayo/work/tokyocabinet

ブラウザでtctsearch.cgiにアクセスしてみる!

.cgi You don't have permission to access /

怒られてしまた。。。
cgiの許可してなかった。

http.confに下記を追加してapacheを再起動

ScriptAlias /cgi-bin/ /home/yutadayo/work/tokyocabinet
<Directory /home/yutadayo/work/tokyocabinet>
  AllowOverride None
  Options ExecCGI
  Order allow,deny
  Allow from all
</Directory>

もう一度アクセス!

動いた。

導入までは結構簡単でした。