全文検索エンジンHyper Estraier導入

第十九回


さて,先日の続きである.研究室に論文PDFを閲覧できるWebサーバを設置したわけだが,その論文PDFは色々な学会ごとに分けられている.さらに,それぞれの学会のIndexページが存在し,そこから論文PDFへのリンクが張られているといった感じだ.これだと,自分が見たい論文がどの学会で何年に発表されたか分かっている場合は一本道で論文までたどり着ける.しかし,論文タイトルだけ分かっているとか,誰々が書いたってことだけは分かっているとか,「検索スコアリング」に関する論文が欲しいといった要求に答えることはなかなか難しい.


そこで,今回は大量の論文PDFから全文検索の機能を追加する.検索対象は各論文PDFファイルとして,全文検索エンジンにはHyper Estraierを利用した.これは,N-gram法を拡張したN・M-gram法を用いたindexingにより,もれのない全文検索を実現している.また,文書ドラフトという文書とインデックスの中間ファイルを読み取ることができるので,論文本文だけではなくタイトルや著者からも検索できるようになる.ちなみに,作者の平林幹雄氏は私と同じ2月11日生まれということで妙な親近感を覚えた(笑)すばらしいソフトを使わせていただいて多謝.

ここでは,導入方法を簡単に書いておこう.
導入にはHyper Estraierが利用しているソフトをインストールし,最後にそれ自身をインストールする.必要なソフトは,

  • libiconv : 文字コード変換.バージョン1.9以降
  • zlib : 可逆データ圧縮.バージョン1.2.1以降
  • QDBM : 組み込み用データベース.バージョン1.8.49以降

QDBMはデータベースなのだが,Hyper Estraier1.2.3はQDBM1.8.49以降必須なので注意.まずはlibiconvから,

$ wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.9.2.tar.gz
$ tar zxvf libiconv-1.9.2.tar.gz
$ cd libiconv-1.9.2
$ ./configure
$ make
$ su
# make install

続いてzlibをインストールする.

$ wget http://jaist.dl.sourceforge.net/sourceforge/libpng/zlib-1.2.3.tar.gz
$ tar zxvf zlib-1.2.3.tar.gz
$ cd zlib-1.2.3
$ ./configure
$ make
$ su
# make install

次に,QDBMをインストールするが,ここでzlibを有効にするために--enable-zlibを,データベースへの排他制御をコネクションごとに行い,スレッド対応にするために--enable-pthreadをオプションに指定してビルドしている.

$ wget http://qdbm.sourceforge.net/qdbm-1.8.50.tar.gz
$ tar zxvf qdbm-1.8.50.tar.gz
$ cd qdbm-1.8.50
$ ./configure --enable-zlib --enable-pthread
$ make
$ su
# make install

これで,やっとHyperEstraierのインストール準備が整った.あとは以下の手順でインストールしてやる.

$ wget http://hyperestraier.sourceforge.net/hyperestraier-1.2.3.tar.gz
$ tar zxvf hyperestraier-1.2.3.tar.gz
$ cd hyperestraier-1.2.3
$ ./configure
$ make
$ su
# make install

以上が,私の環境でHyperEstraierを導入した際の方法である.


おしまい