iPad とさくらと全文検索

iPad を購入 していろいろ遊びはじめたが、なかなか楽しい。とにかくデータを見ることに特化したモバイルデバイスで、クラウドやサーバーなどに保存したデータを綺麗な Retina ディスプレイで楽しめる。一方で、大量のデータを iPad そのものの中に入れて持ち運び、文書や画像や動画の編集・加工・検索などパソコンで行うような作業をする、といったことは iPad の得意分野ではないようである。iPad はもっぱらネットワーク越しにデータにアクセスして、高いグラフィック機能と豊富なアプリケーションでそれらを楽しむ、という役目に特化しているように思う。

さて、私は Web サイトやブログ (こことは別の) の運営に さくらのレンタルサーバ (スタンダード) を利用しているが、ここに研究 (インド学仏教学) のためのデータを置いて利用することがある。月額 500 円 (10GB) だが、MySQL のデータベースも 20 個まで利用でき、処理速度も悪くないと思う。ただレンタルサーバーなので当然 root 権限はなく、いかんともしがたい場面もある。

例えば、MySQL のデフォルトの設定では、全文検索で 4文字以下の検索語は無視されてしまう (“cat” や “dog” は無視される)。これは通常 /etc/mysql/my.cnf 等の [mysqld] の項に以下の一行を加えて対処する (cf. MySQLで全文検索)。

ft_min_word_len=1

ところが、残念ながら my.cnf の編集には root 権限が必要である。mysql に入り変更しようとすると、

mysql> show variables like 'ft_min_word_len';
+-----------------+-------+
| Variable_name   | Value |
+-----------------+-------+
| ft_min_word_len | 4     |
+-----------------+-------+
1 row in set (0.00 sec)

mysql> set ft_min_word_len=1;
ERROR 1238 (HY000): Variable 'ft_min_word_len' is a read only variable

と弾かれる1。この変数はサーバー稼動時は修正できないようである (cf. MySQL Reference Manual)。

まあ、安い値段で十分有効利用させてもらっているので文句は言えないが、今回 iPad からこのサーバーのデータを検索しようとして、やっぱりちょっと不便かなと思った。

# iPad の ssh クライアント Prompt から接続。チベット語などでは「don」や「dam」など三文字の単語もたくさんあり不便する場面も...

https://skalldan.files.wordpress.com/2012/03/wpid-ssh_ipad_mysql_sakura.png

# ちなみに ft_min_word_len=1 が設定できるとこうなるはずだった (別のサーバーへ接続)。

https://skalldan.files.wordpress.com/2012/03/wpid-ssk_ipad_mysql_aditya.png

そこで代替案として、開発はずっと以前に終了しているが高機能で比較的導入が簡単な 全文検索システム Hyper Estraier を入れてみた。

bash の設定ファイル (~/.bashrc) には例えば次のように書いておく2 (“$” と “$” 注意)。

export PATH=$HOME/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:$PATH
export LD_LIBRARY_PATH=$HOME/lib:/usr/lib:/usr/local/lib:$LD_LIBRARY_PATH
export LIBRARY_PATH=$HOME/lib:$LIBRARY_PATH
export CPATH=$HOME/include:$CPATH

以下の必要なものを /home/USER 以下にそれぞれインストールする。

$ configure --prefix=/home/USER
$ make
$ make install

検索用 CGI スクリプト類もコピーしておく。

$ cd /home/USER/www/cgi-bin
$ cp /home/USER/libexec/estseek.cgi .
$ cp /home/USER/share/hyperestraier/estseek.* .
$ chmod 755 estseek.*

詳しくは User’s Guide of Hyper Estraier を参照。

estcmd でいくつかインデックスを作成して iPad からアクセスしてみた。スクリーンショットは研究で利用する中国語仏典のデータの検索画面。

https://skalldan.files.wordpress.com/2012/03/wpid-chinese_text_search.png

https://skalldan.files.wordpress.com/2012/03/wpid-chinese_text_search_02.png

https://skalldan.files.wordpress.com/2012/03/wpid-chinese_text_search_03.png

ちなみに iPad のブラウザは iCab Mobile を利用している。検索エンジンを自由に追加できるところもこのアプリの強みである。

https://skalldan.files.wordpress.com/2012/03/wpid-icab_mobile_search.png

iPad 自身はこうした素早い全文検索は得意とはしないが、最近ではほとんどどこでもネットにつながることができるので、こうしたファイルサーバー検索を Web ブラウザから実行すればよい。今はサーバー上のテキストデータで試しているが (10GB という容量の限界もあり…)、PDF データやスキャンされたグラフィックデータ等もサーバーにまとめて置いておきそこにアクセスすれば、高機能グラフィックを備えたモバイルデバイスとしての本領をより発揮できるだろう。

# iPad では比較的小さな文字でも拡大せずそのまま読むことができる (画像クリックで iPad でのスクリーンショットのサイズ)。ただし画像データなどは Copy Right があるので、いわゆる自炊データ等を置く場合は個人利用に限られるだろう。

ipad_monier_image.png

ipad_nakamura_image.png

関連記事

Footnotes:

1 他にも GRANT を実行する権限が無いのでユーザーの追加なども不可能である。

2 さくらの FreeBSD (8.1-RELEASE-p8) では csh がデフォルトだが私は bash を使用している。

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s