はやぶさ通信 Vol 12号

2003/08/23
はやぶさ通信
Vol 12号
少し、趣向を変えて、全文検索エンジンの namazu を
インストールしてみたいと思います。
namazu を Windows 2000 環境にインストールするのも、
昔と比べて非常に簡単になってきているので、一度試さ
れては如何でしょうか?
4.環境変数調整
通常、namazu は、デフォルトの C:ドライブにインス
トールしないと上手く動かない時があるそうです。
別のドライブにインストールした場合は、namazu 関係の環
境ファイルも修正しておいてください。
1.namazu
1.namazu の入手
namazu をインストールするには、ActivePerl,
namazu,kakasi などのソフトが必要です。
① kakasi の辞書ファイルを移動します。
展開した \kakasi\share フォルダを、\namazu\share
フォルダに移動します。
② 設定|コントロールパネル|システム|詳細|環境
変数(Windows 2000 の場合) を修正します。
・ITAIJIDICTPATH C:\namazu\share\kakasi\itaijidict
・KANWADICTPATH C:\namazu\share\kakasi\kanwadict
http://www.namazu.org/windows/
の、ダウンロード と、必要なソフト というリンクから、下
記のファイルを取得します。
・ActivePerl5.6.1.633-MSWin32ActivePerl-5.6.1.633
MSWin32-x86.msi
・nmz2012.exe
・kakasikakasi-2.3.4
また、今回は、PDFファイルも検索したいので、
xpdf もインストールします。
http://www.foolabs.com/xpdf/download.html
より、下記のファイルを取得します。
・xpdfxpdf-2.022.02-win32.zip
・xpdfxpdf-japanesejapanese-20022002-aprapr-01.tar.gz
2.インストール
インストールに関しては、
http://sl.hunet.ne.jp/cgi/_cool/namazu2/
が非常に詳しいので、そちらを参照して頂ければよい
と思います。
1.ActivePerl のインストール
①基本的にデフォルトでインストールします。
②インストールが完了したら、コマンドプロンプトから
perl -version
として、ActivePerl の動作を確認します。
2.KAKASI のインストール
①ZIP ファイルを解凍します。
②namazu との連携では、\kakasi\share\kakasi に
ある 2 個の辞書ファイルのみ使用します。
(それ以外は削除します。)
3.Namazu for Win32 のインストール
①nmz2012.exe を実行して、インストールします。
②コンピュータを再起動したらコマンドプロンプト
を開いて、c:\namazu --help として、Namazu の
使い方が表示されることを確認してください。
5.インデックスを作る
通常、C:\namazu\var\namazu\index にインデックスを
作成しますが、H:ドライブに作成します。
MS-DOS プロンプトを開き
mknmz -U -O
^(連続行)
C:\namazu\var\namazu\index
^(連続行)
D:\InetPub\wwwroot
を実行し、NMZ.* ファイル群ができれば OK です。
6.Apache
6.Apache の CGI として、実行できるようにする。
①C:\namazu\libexec\namazu.cgi.exe ファイルを
apache2 の cgi-bin フォルダに、コピーする。
②C:\namazu\etc\namazu\namazurc を、apache2 の
cgi-bin に、.namazurc という名前でコピーする。
③ Web ページに、検索ページへのリンクを入れる。
<a href="/cgi-bin/namazu.cgi.exe" >Search</a>
④ アクセスしてみて、動作を確認する。
ここまでで、基本的な設定は完了です。
この先は、少し特殊かもしれませんが、namazu のカスタ
マイズについて説明します。
7.PDF
7.PDF ファイルのインデックス作成
PDF ファイルのインデックスを作成する場合は、外部プロ
グラムの『xpdf』が必要です。(すでにダウンロード済み)
①pdf-2.02-win32.zip を解凍します。
pdftotext.exe 、ファイルを、c:\namazu\bin フォルダに、
コピーします。
sample_xpdfrc ファイルを、xpdfrc に名前を変更後、
c:\namazu\bin にコピーします。
②xpdf-japanese-2002-apr-01.tar.gz を解凍します。
③解凍後のフォルダ(xpdf-japanese)を、c:\namazu\share
の下に、xpdf/japanese というフォルダ名で移動します。
2003/08/23
④xpdf/japanese 下の add-to-xpdfrc ファイルを編集。
/usr/local/share/xpdf/japanese/を Windows のパス
名の C:\namazu\share\xpdf\japanese に書き換える。
⑤書き換えた内容を、先の c:\namazu\bin にコピーし
た、xpdfrc ファイルの最後に、追加します。
⑥ 「5.インデックスを作る」 に戻って、PDF ファイルを
含めて、インデックスを作成しなおす。
8.検索フォームをカスタマイズ
namazu の検索フォーム画面をカスタマイズします。
①テンプレートファイルを編集する。
\namazu\share\namazu\template の.jp のファイル
6 個が検索フォームのテンプレートになります。
壁紙などの画像ファイルものフォルダに入れます。
これらのファイルは EUC コードで書かれています。
②Apache2\cgi-bin\.namazurc を開き、Template
設定項目のコメントをはずします。
先のファイルを別フォルダにコピーした場合は、
テンプレートファイルのディレクトリを指定します。
これで、namazu.cgi.exe はインデックスのある
フォルダからではなく、上記で指定したテンプ
レートファイルを探すようになります。
9.複数のインデックスを検索する
複数のインデックスを検索するには、idxname という
フィールドの値を、CGI プロセスに渡します。
①インデックスをフォルダに分けて作成しておく
「5.インデックスを作る」 で、サブフォルダ毎に
インデックスを作成します。
単純にインデックス毎にコマンドを実行します。
②検索フォームのテンプレートの修正
NMZ.head.jp ファイルの name="idxname"
の箇所のコメントを外します。(一番下のほう)
<strong>検索対象:</strong>
<ul><li><input type="checkbox"
name="idxname" value="hayabusa"
checked="checked" >hayabusa
<li><input type="checkbox"
name="idxname" value="java" >java
<li><input type="checkbox"
name="idxname" value="oracle" >oracle
</ul>
10.EXCELからHTML変換時のルビ情報の削除
EXCELからHTML変換時にルビ情報が、一緒に
出力されます。
<ruby>御打合<span style='display:none'>
<rt>オウチアワ</rt></span>
</ruby>
の形式です。
このままインデックスを作成すると、検索結果の要約に
御打合 オウチアワ
のように出力されます。
※ EXCEL ⇒ HTML 変換時にシートを指定すれば、
ルビは出ません。なんでかな~、なんでかな~♪
ここでは、namazu のフィルターをカスタマイズして、
(多少強引に)ルビを削除してみます。
①namazu\share\namazu\filter\html.pl の
remove_comments 関数に、ルビ情報を削除する正規
表現を追加します。
変更後(html.pl ファイルから抜粋)
sub remove_comments ($) {
my ($contref) = @_;
# remove all comments
$$contref = s/<rt>.*?<¥
s/<rt>.*?<¥/rt>//gs;
$$contref = s/<!--.*?-->//gs;
}
11.ファイル検索条件への追加、除外
デフォルトでは、.jsp , .sql , .spc などの拡張子は
検索対象とならずインデックスが作成されません。
逆に、特定のファイルは検索対象から除外したい場合があ
ると思います。どちらも、namazu\etc\namazu\mknmzrc ファ
イルを修正します。
①JSP,SQL,SPC 拡張子を検索対象に追加する。
$ALLOW_FILE のコメントをはずし、追加します。
$ALLOW_FILE = ".*¥¥.(?:$HTML_SUFFIX)│.*¥¥.txt" .
"│.*¥¥.gz│.*¥¥.Z│.*¥¥.bz2" .
# Compressed files
"│.*¥
"│.*¥¥.jsp│.*¥
.jsp│.*¥¥.sql│.*¥
.sql│.*¥¥.spc" . # jsp , sql , spc
"│.*¥¥.pdf│.*¥¥.ps" .
# PDF, PostScript
"│.*¥¥.tex│.*¥¥.dvi" .
# TeX, DVI
"│.*¥¥.rpm│.*¥¥.deb" .
# RPM, DEB
"│.*¥¥.doc│.*¥¥.xls│.*¥¥.ppt" . #Word,Excel,PowerPoint
"│.*¥¥.j[sabf]w│.*¥¥.jtd" .
# Ichitaro 4, 5, 6, 7, 8
"│¥¥d+│[-¥¥w]+¥¥.[1-9n]";
# Mail/News, man
②検索対象から、dummy.html と、_(アンダーバー)
付ファイル、ディレクトリは、除外します。
$DENY_FILE と、$EXCLUDE_PATH を設定します。
$DENY_FILE
=“^_.*│dummy
^_.*│dummy¥
^_.*│dummy¥¥.html│index.jsp│.*¥¥.(gif│png│jpg│jpeg)
.html
│.*¥¥.tar¥¥.gz│core│.*¥¥.bak│.* │¥¥..*│¥x23.*";
$EXCLUDE_PATH = "/_.*
/_.*";
/_.*
はやぶさ通信 Vol 12 号 2003/08/23
はやぶさ推進委員会/はやぶさ連絡協議会
会社名および製品名は、各社の商標または登録商標です。