高速全文検索システム Hyper Estraierにてイントラネット文書検索システムを構築。
さて、Hyper Estraierをインストールし、index作成まで無事終わったら、いよいよブラウザから検索できるように設定します。
はっきりいって、インストールは簡単ですが、ブラウザから検索できるようにするのが至難。
だいたいここであきらめる人がおおいようです。
さぁがんばってみましょう。
[2回]
[日本語環境にする]
検索画面および設定ファイルを日本語環境のものに上書きします。
それらは、locate/jaの中に入っていますので、hyperestraierフォルダ直下にコピーします。
estseek.conf、estseek.help、estseek.tmpl、estseek.top の4ファイルが対象です。
[estseek.cgiをちょっといじる]
まず、
ブラウザから検索するには、estseek.cgiを呼び出します。さて、このestseek.cgiがけっこう曲者で、わたしもこれにはまりました。
IISの設定の説明はあとからするとして、estseek.cgiをブラウザから呼ぶと、ActivePerlが入っている環境では、
CGI Error The specified CGI application misbehaved by not returning a complete set of HTTP headers
というエラーが出、ActivePerlが入っていない環境では、HTTP/500 のエラーが出て動きません。
estseek.cgiをいじろうにも、バイナリ化されているのでいじることもできません。
HyperEstraierのユーザーメーリングリストに
こんなことが記載されていました。
簡単にいうと、estseek.cgiをestseek.cgi.exeにリネームする。あわせてその設定ファイルであるestseek.confをestseek.cgi.confにリネームするというものです。
あとはIISの設定でexe形式の実行ができるようにします。
[IISの設定]
まずは、検索対象となるフォルダをIISのWebサイトに登録します。これについては読み取りのみ可とします。
次に、HyperEstraierのインストールフォルダをWebサイトに登録します。
ここについては、アプリケーションやCGIを実行するにチェックを入れます。
次にCGI実行許可についてですが、「Web拡張」にて、「すべての不明なCGIの拡張」を許可します。
閉ざされた環境下ではこれでOKですが、セキュリティ上問題があれば、「新しいWeb拡張の追加」で、estseek.cgi.exeのみ許可する方法でもよいです。
[estseek.cgi.confの設定]
estseek.cgi.exeの設定ファイルである、estseek.cgi.confにて設定します。UTF-8で読み書きできるメモ帳で開いて設定します。
indexname: 作成したindexの場所を指定します。c:\index\cusket と絶対パスを記載していいです。
replace: ローカルパスをURLに変換する規則を記載します。これを間違えると、検索結果のリンクから文書が表示されないことになります。
初期設定は以下のようになっています。
replace: ^file:///home/mikio/public_html/{{!}}http://localhost/
{{!}}をはさんで、左側がローカルパス。右側がURLとなります。
右側URLはIISの設定で決まったURL。たとえば、http://SV/document/ と記載します。
左側はindexにどのようにローカルパスが登録されているか確認したほうが簡単です。
コマンドプロンプトにて、
cd c:\index
estcmd list cusket
とうつと、indexに登録されているファイルのリストが表示されます。
1 file://C|/document/*********/**********.doc となっていれば、左側は、 ^file://C|/document/ と記載すればいいのです。
replace: ^file://C|/document/{{!}}http://sv/document/
以上が、HyperEstraierの設定でした。あとはブラウザからestseek.cgi.exeを呼び出してみます。
うまく検索画面が表示されたら検索してテストをしてみましょう。
[補足:ファイル名を検索する]
estseek.cgiでは、標準で使用するとファイル内検索しかしてくれません。
属性検索機能を持っていますが、@titleなどコマンドらしきものを入力しなくてはいけないので、 ちょっと不便です。
一応、estseek.confで、attrselect:を trueにすると検索する属性をリストから選ぶように設定は できるのですが、ちょっと問題が・・・。
titleの場合はよほど意識しないとtitleにindexは入りません。
title=ファイル名ではないのです。htmlにあたるtitle属性を意識して入れないとだめなのです。
では、ファイル名を検索するにはどうしたらいいか? estseek.confで設定ができます。
formtype: normalを formtype: file に修正します。
そうすると、ファイル内検索をするか、ファイル名検索をするか選択ができるようになります。
イントラネット内文書検索の場合は、こちらが便利かと思います。
が、ファイル内検索およびファイル名検索を同時にできないため、これまた不便が生じます。 HyperEstraier Users メーリングリストに便利な機能を追加した方がいますので、利用してみると いいかもしれません。
Advanced form helper sample for file-server using estseek.tmpl
[まとめ]
Namazuにしろ、HyperEstraierにしろ、Unixでの使用を前提としているため、Windows + IISではうまくいかない場合が多いようです。しかし、イントラネットではWindows+IISが多いのではないでしょうか。
また、セキュリティ上インターネットからは独立した閉ざされた環境も多いのも事実。
そこらへんを、Namazuに考慮してもらいたいですし、HyperEstraierについては、Windows+IIS環境での動作をもう少し安定してもらいたいものです。また、HyperEstraierは高機能であるがゆえに使い勝手もよくできた検索エンジンとは思うのですが、もう2年も更新されていないのが気になります。脆弱性の問題が出たときに更新が出るのかも心配なところ。
Namazuを入れるかHyperEstraierを入れるかはそこらへんを見極めたほうがよさそうです。
(おわり)
PR