Home > Latest topics

Latest topics > mod_estraierでの履歴全文検索(ミラー)

宣伝。日経LinuxにてLinuxの基礎?を紹介する漫画「シス管系女子」を連載させていただいています。 以下の特設サイトにて、単行本まんがでわかるLinux シス管系女子の試し読みが可能! シス管系女子って何!? - 「シス管系女子」特設サイト

mod_estraierでの履歴全文検索(ミラー) - Aug 07, 2006

mod_estraierのUbuntu(deb系)での導入手順をこないだ見ようと思ったらサーバが落ちてて難儀したので、こっちにもミラーしておく。

オープンソースマガジン2006年6月号で紹介されているmod_estraierは、Apacheをプロキシとして利用することでWebの閲覧履歴をキャッシュし、「自分が見たことのあるページ」だけを対象に全文検索を行えるようにするソフトウェアです。Web全体ではなく閲覧履歴だけを対象に検索できるので、「確かどこかで見たことがあったんだけど、どこだったかな……」といったうろ覚えのページを探すのに最適です。

風博士ではブラウザ自体にこのような機能を持たせていたり、Firefoxではファイルキャッシュを全文検索できるsearchcacheといった拡張機能が合ったりするのですが、mod_estraierを導入すると、以下のようなメリットがあります。

  • プロキシとして動作するので、ブラウザに依存しないで使える(vs 風博士)
  • 検索用のインデックスをバックグラウンドで生成するので、高速かつ高機能な検索が可能(vs Firefox + searchcache)
  • 複数人でデータベースを共有できるため、チームでの利用が可能
  • WWWサーバで利用すればサイト内検索システムにも応用可能

オープンソースマガジンの特集記事ではFedora CoreとDebian(sid?)の場合の導入手順が紹介されていますが、私の手元のUbuntu [Dappar Drake]ではそのままではうまくいかず、色々と手を入れなくてはなりませんでした。Ubuntu [Dapper Drake]での最終的な導入手順をここにまとめておきますので、同じような環境を使われている方は参考にしてみてください。

インストール

まず、必要なパッケージをインストールします。mod_estraier以外はaptで導入できますので、一括してインストールしてしまいましょう。

  • $sudo apt-get install apache2 apache2-dev hyperestraier libtidy-dev libestraier-dev libqdbm-dev

mod_estraierは配布ページからソースコードをダウンロードして展開し、自分でビルドします。

  • $./configure CPPFLAGS='-I/usr/include/estraier -I/usr/include/qdbm -I/usr/include/tidy' --with-apxs=/usr/bin/apxs2
  • $make
  • $sudo make install

オプションでパスや環境変数を指定しないとビルドに失敗してしまいますので、注意が必要です。

Hyper Estraierの設定

インストールまで完了したら、次は設定です。

まずHyper Estraier(mod_estraierが利用する全文検索システム)の設定を変更しておきます。初期状態では起動時にHyper Estraierを自動起動する設定になっていませんので、/etc/default/hyperestraier を編集して、自動的に起動するようにしておきましょう。

  • $sudo gedit /etc/default/hyperestraier
NO_START=1

という行がありますので、これを以下のように書き換えて上書き保存してください。

NO_START=0

Hyper Estraierの起動とノードの作成

次に、Hyper Estraierを起動し、検索インデックスを保存するデータベース(ノード)を作成します。

  • $sudo /etc/init.d/hyperestraier start

以上のコマンドでHyper Estraierを起動したら、Webブラウザで「http://localhost:1978/master_ui」を開きます。すると、Hyper Estraierの管理画面が読み込まれます。ここでメニューから「Manage Nodes」を選択し、2つあるテキストボックスの左側にノード名「web」、右側にその説明(適当で構いません。私は「for mod_estraier」としました)を入力して「create」ボタンをクリックします。これで、Hyper Estraierの準備はできました。

Apache2の設定

次は、Apache2をプロキシとして利用するための設定です。

Apache2では設定ファイルを分けておくのがマナーのようなのですが、話を単純にするために、後方互換性のために用意されているhttpd.confに設定を書くことにします。

  • $sudo gedit /etc/apache2/httpd.conf

以下の内容をそのまま貼り付けてしまって構いません。なお、先の手順で作成したHyper Estraierのノードを「web」以外の名前にしていた場合は、以下の例の強調箇所もそれに合わせて書き換えてください。

LoadModule estraier_module /usr/lib/apache2/modules/mod_estraier.so

ProxyRequests On
<Proxy *>
  Order deny,allow
  Deny from all
  Allow from 127.0.0.1
  SetOutputFilter estraier
  EstraierNode http://localhost:1978/node/web
  EstraierUser admin
  EstraierPass admin
  EstraierLanguage ja
  EstraierDenyURI http://[a-z]*.?google.co
  EstraierAllowURI http://labs.google.com/
  EstraierDenyURI favicon.ico
  EstraierUseWeight On
  EstraierFilterCommand ^application/pdf H@/usr/share/hyperestraier/filter/estfxpdftohtml
  EstraierFilterCommand ^application/msword H@/usr/share/hyperestraier/filter/estfxmsotohtml
  EstraierFilterCommand ^application/vnd.ms-(excel|powerpoint) H@/usr/share/hyperestraier/filter/estfxmsotohtml
</Proxy>

また、このままだと文字コードが指定されていないページを読み込んだときにApache2が余計な文字コード指定を加えてしまうため、文字化けすることがあります。/etc/apache2/conf/charset の中にその定義がありますので、「#」文字でコメントアウトしておきましょう。

  • $sudo gedit /etc/apache2/conf/charset

でファイルを開き、

AddDefaultCharset UTF-8

となっている行を

#AddDefaultCharset UTF-8

とコメントアウトし、上書き保存します。。

そして、Apache2のプロキシ機能を有効にし、Apache2を再起動します。

  • $sudo a2enmod proxy
  • $sudo /etc/init.d/apache2 restart

Webブラウザの設定

最後に、Webブラウザの設定も変更しておきます。Firefoxの場合は設定ダイアログを開いた後、「一般」タブの「接続」欄にある「接続設定」ボックスで、HTTPプロキシのホスト名を「localhost」、ポートを80番と記入して、ダイアログを閉じます。

以上で全ての設定は終わりです。mod_estraierのさらに便利な使いかたや、動作原理などについては、オープンソースマガジン本誌の特集記事をご覧下さい。

分類:ソフトウェア, , , , , 時刻:09:36 | Comments/Trackbacks (0) | Edit

Comments/Trackbacks

TrackBack ping me at


の末尾に2020年11月30日時点の日本の首相のファミリーネーム(ローマ字で回答)を繋げて下さい。例えば「noda」なら、「2006-08-07_modestraier.trackbacknoda」です。これは機械的なトラックバックスパムを防止するための措置です。

Post a comment

writeback message: Ready to post a comment.

2020年11月30日時点の日本の首相のファミリーネーム(ひらがなで回答)

Powered by blosxom 2.0 + starter kit
Home

カテゴリ一覧

過去の記事

1999.2~2005.8

最近のコメント

最近のつぶやき