<<< >>> 最新 / 今月の一覧 / shake home ChangeLog page

◇shake.hans◇ 2004-07-08

2004-07 / 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

* Namazu for Win32 の評価 [Internet/Intranet]
 検索対象としてプレーンテキスト、html、Word、Excel、Powerpoint、pdf を想定した Namazu の設定を行い、検索して動作の評価を行った。ここ2週間ほどのメモの大半がこのメモだったのをまとめた。

■パッケージ
評価用にインストールしたパッケージは以下のとおり
・ActivePerl-5.8.4.810-MSWin32-x86.msi
・kakasi-2.3.4.zip
・nmz2013beta.exe
・xpdf-3.00-win32.zip
・xpdf-japanese.tar.gz
これ以外に office のインストールは必須。
また、環境によっては Microsoft Windows Installer が必要になる場合がある。注)

注)Microsoft Windows Installerのインストール
Microsoft Windows Installerはマイクロソフトが提供しているmsiという拡張子
の形式のファイルをインストールするためのインストーラ。Active Perl や apache
 は最近、msi形式でも提供されるようになった。最新の nmazu 2.0.13 for Win32
 も msi 形式になる予定である。(評価したものはベータ版)

入手先:
9x系用 http://www.microsoft.com/downloads/release.asp?releaseid=32831
NT系用 http://www.microsoft.com/downloads/release.asp?releaseid=32832

Namazu 2.0.12 for Win32 をインストールする場合には ActivePerl は 5.6.1.633
以前を使う必要がある。しかも、テスト環境ではいくつかエラーが出る、インストール
できないモジュールがあるなど時間がかかりそうだったので、今回は見送った。
因みに Namazu 2.0.13 for Win32 のインストールは驚くほど簡単だった。

■ Active perl のインストール
Namazu はインデックスを作成する mknmz コマンドや各種文書フィルタなどが perl
    で記述されている為 Perl が必要。インストールは全てデフォルトでよかった。

入手先:
http://www.activestate.com/

■ Kakasi のインストール
ルートに \kakasi フォルダを作成し、ディレクトリ構成を保ったままパッケージを
解凍する。ルート以外で使用する事も出来るかもしれないが、いろいろな部分で問題
がでるので今回はこの構成にした。

入手先:
http://www.namazu.org/windows/

■ namazu のインストール
exe を実行するとインストーラがルートに \namazu フォルダを作成し、以下に展開
される。ルート以外で使用する事も出来るかもしれないが、いろいろな部分で問題
がでるので今回はこの構成にした。インストールは全てデフォルトでよかった。
ファイルのコピー以外にインストーラによって環境変数が設定される。

動作確認として
C:\> namazu --help
C:\> mknmz --help
を実行できれば問題なし。Office がインストールされていないと mknmz --help
でエラーが出る。

入手先:
2.13β http://namazu.org/~takesako/pub/nmz2013beta.exe
2.12 http://www.namazu.org/windows/

(設定は後述)

■ PDF ファイルを検索するためのモジュールのインストール
PDF ファイルを Namazu の検索対象に加えるには xpdf に含まれる pdftotext と
pdfinfo、日本語用 Language Support Package が必要。(正確には後述の xpdfrc
    も必要)pdftotext と pdfinfo は \namazu\bin 以下に置いた。日本語用 Language
    Support Package は解凍後、xpdf-japanese と言うディレクトリを japanese に変更
し、\namazu\bin 以下に置いた。(設定は後述)

入手先:
http://www.foolabs.com/xpdf/

■ 環境の設定
以上の様にインストールが済んだ後、必要な動作を得るためには以下の様に環境設定
することが必要である。
1. namazurc
  namazurcはnamazuコマンドで検索を実行する際の環境を設定する。
  インストール時に C:\namazu\etc\namazu\mknmzrc-sample.win32 が mknmzrc
  と言う名前のファイルにコピーされている。後述する理由(「実際の検索」
  の項)で、以下の部分を変更する。

#Replace /home/foo/public_html/ http://www.foo.bar.jp/~foo/

2. mknmzrc
  mknmzrcはmknmzプログラムで検索用のインデックスを作成する際の動作環境を
  設定する。
  C:\namazu\etc\namazu\namazurc-sample.win32 を mknmzrc と言う名前の
  と言う名前のファイルにコピーされている。後述する理由(「実際の検索」
  の項)で、以下の部分を変更する。

$TEXT_SIZE_MAX = 20000000;
$FILE_SIZE_MAX = 30000000;

3. xpdfrc
  C:\namazu\bin\japanese ディレクトリの add-to-xpdfrc を xpdfrc と言う
  名前のファイルにコピーし、ファイルの最後に以下の様に記述する。(後で
  必要になるかもしれないので、念のため、オリジナルの add-to-xpdfrc は
  変更せずに取っておく)

#----- begin Japanese support package (2002-jan-16)
cidToUnicode Adobe-Japan1 C:\xpdf\japanese\Adobe-Japan1.cidToUnicode
unicodeMap ISO-2022-JP C:\xpdf\japanese\ISO-2022-JP.unicodeMap
unicodeMap EUC-JP C:\xpdf\japanese\EUC-JP.unicodeMap
unicodeMap Shift-JIS C:\xpdf\japanese\Shift-JIS.unicodeMap
cMapDir Adobe-Japan1 C:\xpdf\japanese\CMap
toUnicodeDir C:\xpdf\japanese\CMap
#----- end Japanese support package

注)xpdf のバージョンが 3.00 より古い場合には以下の行が最後に
付加する。
displayCIDFontX Adobe-Japan1 "-*-fixed-medium-r-normal-*-%s-*-*-*-*-*-jisx0208.1983-0" ISO-2022-JP
これはバージョンが 3.00 からサポートされなくなったので、今回の
構成でこの行が含まれている場合、以下のようなメッセージが出る。
Error: Unknown config file command 'displayCIDFontX' (C:\namazu\bin\xpdfrc:117)
Error: -- Xpdf no longer supports X fonts

検索対象がインデックスされるかどうかは mknmz -C を使う

C:\>mknmz -C
読み込んだ設定ファイル: C:/namazu/etc/namazu/mknmzrc
システム: MSWin32
Namazu: 2.0.13
Perl: 5.008003
NKF: module_nkf
KAKASI: module_kakasi -ieuc -oeuc -w
茶筌: chasen -j -F '%m '
わかち書き: module_kakasi -ieuc -oeuc -w
メッセージの言語: ja_JP.SJIS
言語: ja_JP.SJIS
文字コード: sjis
CONFDIR: C:/namazu/etc/namazu
LIBDIR: C:/namazu/share/namazu/pl
FILTERDIR: C:/namazu/share/namazu/filter
TEMPLATEDIR: C:/namazu/share/namazu/template
Supported media types:
  application/excel
  application/ichitaro5
  application/ichitaro6
  application/ichitaro7
  application/macbinary
  application/msword
  application/pdf
  application/powerpoint
  application/rtf
  application/x-apache-cache
  application/x-gzip
  application/x-js-taro
  message/news
  message/rfc822
  text/hnf
  text/html
  text/html; x-type=mhonarc
  text/plain
  text/plain; x-type=rfc
  text/x-hdml

■ IIS と cgi のインストール
IIS は[コントロールパネル][Windowsコンポーネントの追加と削除]から[インター
ネットインフォメーションサービス(IIS)]を追加することでインストールされる。

Namazu を cgi として実行できるようにするためには c:\Inetpub\scripts などの
cgi を実行したいディレクトリのプロパティで[web共有]タブで[共有]が「既定の
webサイト」、[このフォルダを共有する]が「このフォルダを共有する」になってい
る必要がある。更に[エイリアス]に「scripts」などの名前でエイリアスを追加し、
[アプリケーションの許可]のボタンを「実行(スクリプトを含む)」にセットする。

次に c:\namazu\libexec にある namazu.cgi.exe を 上記で作成した CGI ディレ
クトリにコピーする。これが CGI 用の Namazu 実行プログラム。

■ 実際の検索
実際にドキュメントのインデックスを作成し、検索できるかどうか試してみた。

1. 検索結果のリンク先が /C|/doc/**** となってしまうので namazurc の
  Replace 行を以下の様に変更する。
Replace /C\|/doc/ http://www.foo.bar.jp/

2. 実際の検索対象のファイルサイズにより、インデックス作成時に無視される
  ので C:\namazu\etc\namazu\mknmzrc の以下の部分を修正
$TEXT_SIZE_MAX = 20000000;
$FILE_SIZE_MAX = 30000000;

3. インデックスを作成する
  DOS 窓で mknmz -O C:\namazu\var\namazu\index\foo Q:\ を実行。
  データが1万件以上あると初めてのときは1時間以上かかる。次回からは変更
  差分だけをインデックス化するため速い。また、検索対象でファイルサイズの
  大きなものをインデックス化するときには時間がかかる。

4. 検索用の html の設置
  今回 cgi の実行ディレクトリを c:\inetpub\cgi-bin とした。
  ここへ「IIS と cgi のインストール」での設定を施し、以下の html を置いた。
  この基本部分を必要なページの html に付加するだけで検索窓が出来ることを
  想定してある。これで検索が出来ることを確認した。

<html><body>
<!--Namazu による全文検索システム-->
<form action="/cgi-bin/namazu.ccgi" method="get">
<p>
<a href="http://www.namazu.org/"><strong>Namazu:</strong></a>
<input name="query" value="123" size="30" accessKey="T" tabIndex="10">
<input type="hidden" name="whence" value="0">
<input type="hidden" name="max" value="20">
<input type="hidden" name="result" value="normal">
<input type="hidden" name="sort" value="score">
<input type="hidden" name="idxname" value="pub,past"> 注)
<input type="submit" value="検索" accessKey="S" tabIndex="11">
[<a href="/cgi-bin/namazu.ccgi">説明</a>]
</p>
</form>
</body></html>

5. 検索結果の表示
  今回は行わなかったが、検索結果の表示はカスタマイズできる。
  カスタマイズするためには namazurc の以下の場所を有効にし、適切に設定
  する。
#Template /usr/local/var/namazu/index

  テンプレートは C:\namazu\share\namazu\template にある NMZ.body や
   NMZ.body.jp である。

6. 定期的なインデックスの更新
  インデックスを作成するコマンドを記述した
  バッチファイルを作成し、infra_search.bat などの名前で保存する。
  次に[コントロールパネル][タスク]を開き、「スケジュールされたタスク」
  をダブルクリックする。タスクウィザードが開くので、。「参照」ボタンを
  押し、先ほど作成したバッチファイルを登録、タスクを実行する間隔や開始
  時刻などを指定する。これで、定期的なインデックスの構築が出来るように
  なる。

イカロス <ika@shake.hans.or.jp>
本日のツッコミ [全部見る / ツッコミを入れる] |

2004-07 / 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

2004 Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec

<<< >>> 最新 / 今月の一覧 / shake home ChangeLog page