Hyper Estraier
概要
- 全文検索エンジン (要はデスクトップ検索)
- 特定ディレクトリ内の Word ファイルや PDF ファイル内の文字に対して検索することができる。
- 日本語でも検索できる。
- 検索結果は cgi でブラウザを通じて閲覧できる
- cgi は同梱されている
- もちろん、API を叩けば検索結果を自前のアプリケーションで閲覧することもできる
- 参考サイト: 全文検索システム Hyper Estraier
構築方法
- ここでの作業は、Web ルートディレクトリの権限をユーザにしているなら、sudo を付けずに作業できる。
- ここでは、以下の条件で構築する
- localhost が Web 上のドメインになる
ディレクトリ | Web上のアドレス | ディレクトリの役割 |
---|---|---|
/var/www | http://localhost/ | Webサーバのルートディレクトリ |
/var/www/estraier/ | http://localhost/estraier | Hyper Estraier の cgi などを入れておくディレクトリ (検索画面ページを出す時はこのディレクトリにアクセスすることになる; cgi が実行できる設定にしておく必要あり) |
/home/hoge/Documents | - | 検索対象のファイルが入っているディレクトリ |
/var/www/estraier/Documents | http://localhost/estraier/Documents | Hyper Estraier が検索した結果のリンクをクリックした際にアクセスするディレクトリ (/home/hoge/Documents のシンボリックリンク) |
- Web サーバを構築して cgi を有効化 (例: lighttpd; cgi が使えるのなら Apache でも Nginx でも好きなのをどうぞ)
- Hyper Estraier をインストール
$ sudo apt-get install hyperestraier
- hyperestraier: Hyper Estraier 本体
- wv: Word からテキストを抽出するフィルタ
- xlml: Excel からテキストを抽出するフィルタ
- ppthtml: PowerPoint からテキストを抽出するフィルタ
- ディレクトリの準備
$ sudo mkdir /var/www/estraier $ sudo ln -s /home/hoge/Documents /var/www/estraier/Documents
- Hyper Estraier をブラウザで表示するために必要なファイルのコピー
$ sudo cp /usr/lib/estraier/estseek.cgi /var/www/estraier $ sudo cp /usr/share/hyperestraier/locale/ja/*.* /var/www/estraier
- 設定
$ sudoedit /var/www/estraier/estseek.conf
以下の内容を編集indexname: casket tmplfile: estseek.tmpl topfile: estseek.top helpfile: estseek.help replace: ^file:///home/hoge/Documents{{!}}http://localhost/estraier/Documents
- indexname: インデックス化したファイルが格納されるディレクトリパス (上記設定だと /var/www/estraier/casket を指定)
- tmplfile: ブラウザで表示するための検索結果表示用テンプレートファイル (上記設定だと /var/www/estraier/estseek.tmpl を指定)
- topfile: ブラウザで表示するためのトップ画面に表示される内容 (上記設定だと /var/www/estraier/estseek.top を指定)
- helpfile: ブラウザで表示するためのヘルプファイル (上記設定だと /var/www/estraier/estseek.help を指定)
- replace: 後述の estcmd で取得したファイルパスとブラウザで見るためのパスを置換する
- estcmd では /home/hoge/Documents 以下のファイルパスとインデックスを関連付けるが、/home/hoge/Documents はブラウザからは閲覧できない設定になっているため、上の設定では /var/www/estraier/Documents のシンボリックリンクの URL に置き換えている
- データベースの構築
$ sudo estcmd gather -cl -il ja -pc UTF-8 -sd indexname /home/hoge/Documents
- Hyper Estraier では、相対パスを指定しても絶対パスに置き換えるため、estseek.conf の replace での設定が必須になる
- indexname は estseek.conf で指定したパスにする
- オプション
- -cl: 上書きされたファイルの語句を再構築する
- -il ja: 日本語を優先する
- -pc UTF-8: ファイルパスのエンコード(デフォルトは ISO-8859-1)
- -sd: ファイルの作成日時と更新日時を記録する
- Hyper Estraier はテキスト情報をデータベースに登録するため、PDF や Word などは、フィルターを通してテキストを取得する必要がある
- PDF ファイル
$ sudo estcmd gather -cl -il ja -pc UTF-8 -sd -fx ".pdf" "H@/usr/share/hyperestraier/filter/estfxpdftohtml" casket pdf
- Word/Excel/PowerPoint ファイル
$ sudo estcmd gather -cl -il ja -pc UTF-8 -sd -fx ".doc,.xls,.ppt" "H@/usr/share/hyperestraier/filter/estfxmsotohtml" casket pdf
- ブラウザで http://localhost/estraier/estseek.cgi にアクセスする
- 定期的にデータベースを更新するため、cron などに、手順 6 のデータベースの構築を登録しておく
- 参考サイト