イントラ内でもGoogleのような検索エンジンががあればいいなと思い,探し当てたのがNamazuだ。これをうまく利用すれば,膨大な共有ファイルの中で「あの書類ってどこにあったっけ?」「そういや,あの専門用語を解説してる文書があったはずだけど」なんてときにばっちりだ。早速インストールしてみよう...だけど,その前にシステム構成を再確認しておこう。
サーバーOS | Winsows2000Server | なんのかんのいってもMicrosoftは偉大だ,簡単セットアップが嬉しいぞ(^^; それに全体的にはActiveDirectoryで構築されてるみたいだから他のOS入れると浮いてしまう(^^;; |
---|---|---|
Web サービス | InternetInformationService (IIS) | だっておまけで付いてるから(^^; |
クライアント | Windows2000 InternetExplorler | 上の理由と同じだ(^^) |
http://www.namazu.orgからWindows版の最新版(執筆時点では2.0.18)をダウンロードする。解凍したらその中にある『README-ja.txt』に書かれているとおりにインストールを進めれば基本的にOKだ。個々の環境による注意点のみ以下に記載する。
Namazu for Win32がデフォルトで対応しているのはtext,html等のテキストベースのファイルだ(現在有効になっている対象データ形式は,コマンドプロンプトから 「mknmz -C」と入力することで表示されるぞ)。MicroSoft Officeの文書データについてはOfficeをインストールすれば対応するが,Namazuのためだけにサーバー機にOfficeをインストールするのはライセンスがもったいない。ここではxdoc2txtを使用する方法を紹介しよう。xdoc2txtを使用するとpdfファイルにも対応するぞ。
xdoc2txtは各種ファイル形式の文書をテキスト化してくれる便利なフリーソフトだ。EB series support pageからダウンロードしてこよう。解凍したファイルのうち「xodc2txt.exe」と「zlib.dll」をどこかパスの通った場所(ここではc:¥namazu¥binとする)にコピーする。これだけでOffice・pdfデータにも対応できるから簡単だ。
Namazuでの検索のためには事前にIndex(要するに目次)を作っておく必要がある。イメージとしては,目的の単語を調べるために全文章から探し出すよりも目次から探し出せば格段に速いということだろう。そのためのコマンドがmknmzだ。コマンドプロンプトから
c:¥>perl c:¥namazu¥bin¥mknmz -U -e c:¥Inetpub¥wwwroot -O c:¥namazu¥var¥namazu¥index 1>c:¥temp¥nmz.log 2>c:¥temp¥nmzer.log
を実行してみよう。IISのフォルダ(c:¥Inetpub¥wwwroot)内のファイルに対してIndexを作成してくれるぞ。mknmzの各オプションについてはNamazuのマニュアル(c:¥namazu¥share¥namazu¥doc¥ja内だ)をみてもらえるとありがたい。
エラーもなくIndex作成が完了したらnamazuコマンドで検索してみよう。(例えば,「トップページ」という単語が含まれている「c:¥Inetpub¥wwwroot¥index.html」があった場合),「トップページ」について検索すると,
c:¥>namazu トップページ
検索結果
参考ヒット数: [ トップページ: 1 ]
検索式にマッチする 1 個の文書が見つかりました。
1. index.html (スコア: 2)
著者: 不明
日付: Thu, 13 May 2004 23:03:37
トップページ
/c|/Inetpub/wwwroot/index.html (14 bytes)
現在のリスト: 1 - 1
と表示されるはずだ。はい,完成です。パチパチ...(^^)...まだまだこれからだ
『Namazu for Windowsのインストール』項でインストールした『namzu.cgi.exe』にブラウザからアクセスしてみよう。以下の表示(一部を抜粋した画像だ)が出るはずだ。ここの『検索式』に検索したい単語を入力すればOKだ。
試しに『インジェクション』を入力してみると以下の検索結果(一部を抜粋した画像)が出たぞ。
「できた,できた」と言いたいが,よく見ると『/c|/』みたいな変な記号(?)が付いているし,リンクをクリックしても目的の文書が開かない。これじゃ,ダメだ。 これを直すには,『Namazu for Windowsのインストール』項で作成した『.namazurc』を編集する必要がある。『.namazurc』をエディタで開き(テキストファイルだ),『#Replace』で始まる行の下にでも以下を追加だ。
Replace /[Cc]¥|/Inetpub/wwwroot/ http://IISサーバー名/
『IISサーバー名』はそれぞれの環境に応じて変更だ。ここでは例として『127.0.0.1』にしてみた。これでもう一回検索してみると,
と,ばっちりだ。要するにローカルのファイルをwebサービスのアドレスに変換するためのものって事。
これでイントラ内の文書ファイルを検索することができるようになったわけだが,これはあくまでも静的ファイルに限ったもの。 データベースに登録されている情報を元に動的に作成されるページについてはこれでは検索できない。 さてどうするか...「イントラ実験室2の1」を参照のこと