Namazu 2.0 入門


Namazu 2.0 を初めて使う方のための入門書です。

目次

本書の目的

を対象に、Namazu を使い始める時の困難を少しでも減らせるよう にという目的で書かれています。Namazu の全ての機能については、 説明書 があります。またインストー ルについては INSTALL-ja ファイルに説明があります。

開発の推移

1.3.0.x から 2.0 への開発は次のように推移してきました。

1.3.0.x
旧安定版。1.3.0.10 以前のものは 外部からゴミのファイルを作られる可能性があるので、 1.3.0.11 に更新した方がいい。
1.3.0.11 が最新
1.3.1.0
開発版。チェックポイント機能 (mknmz が定期的に自分自身を exec し直してプロセスの膨張を防ぐ -s オプション) が導入された。 が、正式公開はされず、開発は 1.4.0.0 へと移った。
1.4.0.0
開発版。Perl モジュールを使った高速化が導入された。
が、正式公開はされず、開発は 1.9.x へと移った。
1.9.x
開発版。2.0 への開発中のものを不定期に公開したもの。
1.9.12 以前のものには外部からゴミのファイルを作られる可能性 がある。
2.0
今回公開された新安定版。
current
次の版に向けて開発の続いているもの current は CVS で取得できます。

Namazu の構成部品

Namazu は大きくわけて mknmz, namazu, namazu.cgi の三つから構成されています。

準備と make

2.0 の版を作るために次のソフトウェアが必要です。(お名 前の敬称は略させていただきます)

名称説明 必須 最新版必要な版 ファイル名 作成・配布 入手先(例) その他
PerlPerl 言語処理系 5.6.05.004 perl-5.6.0.tar.gz Larry Wall GNU CPAN CPAN
nkfNetwork Kanji Filter 漢字コード 変換系 1.921.71 nkf171.shar 河野眞治 琉球大学
NKFnkf Perl モジュール化 1.921.71
KAKASI 日本語・ ローマ字 変換系2.3.2<= kakasi-2.3.2.tar.gz KAKASI Project namazu.org
Text::Kakasi KAKASI Perl モジュール化 1.04<= Text-Kakasi-1.04.tar.gz 野首貴嗣 Text::Kakasi
Chasen (茶筌) -- 日本語 形態素 解析器 2.02<= chasen-sys2.02-ipadic2.1.tar.gz 奈良先端大学 | ftp:// 配布方針 2.02 以前では libchasen.a について下記参照
Text::ChaSen ChaSen Perl モジュール化 1.03<= Text-ChaSen-1.03.tar.gz 野首貴嗣 Text::ChaSen
File::MMagic File 種別 ×1.09<= File-MMagic-1.09.tar.gz 野首貴嗣 CPAN dist Namazuの配布に同梱されている

日本語環境での利用

Namazu 2.0 を日本語環境で利用するには環境変数 LANGの設定が必要です。Windows では ja_JP.SJIS と設定 します。UNIX では ja, ja_JP.eucJP, ja_JP.EUC, ja_JP.ujisなどを設定し ます。適切な設定はシステムによって異なります。もしわからない 場合は ja を設定してください。

make install 前の確認

もし make install する前に mknmz を試してみたいという時には cd scripts してから ./mknmz と実行すると、 (/usr/local/share/namazu でなく) すぐ隣にある ../pl/*.pl を参照します。

(この辺の事情は mknmz の中の load_module() の中の @INC の文字の辺 で分るはずです)。

例えば ./mknmz -C ./mknmz --help ./mknmz -O /tmp ~/Mail などを試せます。ただし、 make install 前は日本語でのメッセー ジ出力は行えません。

help の表示

以上 mknmz と namazu の 2つの使い方は引数無しで起動すると簡 単な説明が、--help と入力すると長い説明が表示されます。また -C を付けるとその時の構成を表示します。この 3つは覚えておくと便利です。

コマンド行で説明などを得る方法
引数意味その他に引数を付けると
とても簡単な説明(他の引数・選択は付けられない)
--help詳しい説明 (他の引数・選択は無視される)
-C その時の構成 (他の引数・選択も意味がある)

動作確認 mknmz

まずはインデックスを作ります。 (もし make install の前に試したいなら、上の mknmz make install 前の確認を見てください)
1.4.0.8 からは少し書式が変っています。 URI の置換は --replaceオプションを使って指定するようになりました。 URIの置換は namazu/namazu.cgi の実行時にも行えます。mknmz で は --replace を指定しないで実行し、.namazurc の設定で namazu/namazu.cgi の実行時に置換する方法をお勧めします。

mknmz は次のように実行します。

mknmz [options] 対象ディレクトリ

この例では、インデックスはカレントディレクトリに作られます。 もし出力先を変更したい時には -O を使います。

例えば

      mkdir /tmp/index
      mknmz -O /tmp/index \
      --replace='s#/foo/bar/doc/#http://foo.bar.jp/software/#' \
      /foo/bar/doc

のよう実行します。インデックスの作成中に mknmz は次のような メッセージを出力します。もし、メッセージが英語で表示されたと きは日本語環境での利用を参照してくだ さい。


      6個のファイルがインデックス作成の対象として見つかりました
      1/6 - /foo/bar/acrobat4.pdf [application/pdf]
      2/6 - /foo/bar/html.html [text/html]
      3/6 - /foo/bar/msg00000.html [text/html; x-type=mhonarc]
      4/6 - /foo/bar/plain.txt [text/plain]
      5/6 - /foo/bar/rfc0000.txt [text/plain; x-type=rfc]
      6/6 - /foo/bar/tex.tex [application/x-tex]
      インデックスを書き出しています...
      [基本]
      日付:                Fri Feb 18 14:09:55 2000
      追加された文書の数:  6
      サイズ (bytes):      7,301
      合計の文書数:        6
      追加キーワード数:    48
      合計キーワード数:    48
      わかち書き:          module_kakasi -ieuc -oeuc -w
      経過時間 (秒):       8
      ファイル/秒:         0.75
      システム:            linux
      Perl:                5.00503
      Namazu:              2.0


mknmz の調整

Namazu は元々は HTML 形式のものを処理するために作られました が、現在では様々な文書形式を取り扱うことができます。 /usr/local/share/namazu/filter というディレクトリに手がかり が、また説明書の中の 文書フィ ルタ の節に詳しい説明があります。

MH 形式のメイル
普通に mknmz を実行します。
% mknmz ~/Mail/foobar
MHonArc
Namazu は MHonArc の HTMLに特化した処理を行います。
hnf
hnf 用の .mknmzrc と起動手続が ハイパー日記システム・プロジェクト から入手出 来ます。
他の計算機にある文書
Namazu 単独ではできません。他にその内容を転送してくる 仕組み (wget, NFS など) と組合せて使います。

mknmz のコマンド行引数は、mknmz --helpとすると得ら れます。また-C を付けると、その時の構成を次のように表示してくれます。


      読み込んだ設定ファイル: /home/foobar/.mknmzrc
      システム: linux
      Namazu: 2.0
      Perl: 5.00503
      NKF: module_nkf
      KAKASI: module_kakasi -ieuc -oeuc -w
      ChaSen: module_chasen -j -F '%m '
      わかち書き: module_kakasi -ieuc -oeuc -w
      言語: ja_JP.ujis
      文字コード: euc
      CONFDIR: /usr/local/etc/namazu
      LIBDIR: /usr/local/share/namazu/pl
      FILTERDIR: /usr/local/share/namazu/filter
      TEMPLATEDIR: ../template
      対応メディアタイプ: 
        application/msword
        application/pdf
        application/x-bzip2
        application/x-compress
        application/x-gzip
        application/x-tex
        message/news
        message/rfc822
        text/hnf
        text/html
        text/html; x-type=mhonarc
        text/plain
        text/plain; x-type=rfc
        text/x-roff

インデックスの作成対象について

短縮形本名説明
-F--target-list=fileインデックス対象のファイルのリストを読み込む
-t--media-type=mtype対象ファイルの文書形式を指定する
--allow=PATTERN 対象ファイル名の正規表現を指定する
--deny=PATTERN 除外するファイル名の正規表現を指定する
--exclude=PATTERN除外するパス名の正規表現を指定する

現在の版では対象ディレクトリに symbolic link がある とうまく処理できません。

動作確認 namazu

検索を行うにはコマンド行で次のように実行します。

      % namazu 検索文字列 インデックス

インデックスを省略すると、namazu は /usr/local/var/namazu/index を対象とします。

namazu コマンドの設定は namazurc で行います。 namazurc の設定例は 配布の中の /usr/local/etc/namazu/namazurc-sample にありま す。

Web で CGI を実行するにはいくつかの条件があります。Apache の場合、設定として

ScriptAlias /cgi-bin/ /usr/local/apache/cgi-bin/ URI 中の /cgi-bin/ に対応するディレクトリ
AddHandler cgi-script .cgi .cgi と拡張子ならば cgi として実行する
AllowOverride All .htaccess での設定を許可する (Web管理者)
Options ExecCGI cgi-bin の実行を許す
DirectoryIndex index.html URI がディレクトリを指している時に探すファイル名

などが関係します。(Web管理者) と書かれているもの以外は .htaccess にも設定できます。 (ただし Apache の設定次第でそれ を禁止されていることもある)

Namazu でできること

ここに書いてあることは「保証」ではありません。 開発者の希望が書かれているだけです。

できないこと

その他

インデックス作成の対象ファイルについて
指定した「対象ディレクトリ」の中で、どのファイルがインデック ス作成の対象とされるかは (mknmzrc の) $ALLOW_FILE, $DENY_FILE の設定、あるいは -a, --allow, --deny, --exclude オプションの設定で決まります。
mew-1.94b2x と mew-nmz.el
mew には namazu と連動して 機能が contrib/mew-nmz.el にあり、説明は contrib/00readme-namazu.jis に書かれています。

用語

KAKASI
本来は「漢字で書かれたもの」を「ひらがな・カタカナ・Ro-maji」などに変換するソフトウェア。しかし Namazu では次々項の「わ かち書き」をする道具として使う。
Chasen (茶筌)
「日本語形態素解析器」であるが、KAKASIと同様に「わかち書き」 (正確には日本語の単語の切出し)に使っている。
わかち書き
日本語 は (英語 と 違って)単語 の 区切り に 空白 を 書いたり は しない。 そのまま では 計算機 の 処理 に 不都合 が ある ので、単語毎 に わけて、 間 に 空白 を 入れて 書いた もの を 利用する。 そういう書き方を「わかち書き」と言う。 (用語としては計算機用語として以外にも同じ意味で使われる)
インデックス(名詞)
               (準備)     (検索画面)
                mknmz       namazu
               ↑   ↓     ↑    ↓
      元々の資料    インデックス  検索結果
Namazu はあらかじめ単語の索引を作っておき、検索要求があっ たときには、それを元に検索を行う。この「あらかじめ作 られた「索引」のことをインデックスと呼んでいる。
Namazu の場合 NMZ.* ファイルがそれにあたる。
インデックス(動詞)
上記インデックスを作ること。mknmz を使う
複数インデックス
2つ以上のインデックスを作っておいて、それらの中をまとめて 検索する機能
フレイズ検索
Namazu の検索の基本は単語の組合せである。 "foo and bar" と (順を逆にした) "bar and foo" は区別しない。また、 foo と bar は文書中のどこ に現れてもいい。 "foo bar" という文字列がそのままの順 で出現する文書を探すことをフレイズ検索という。
namazu.conf, conf.pl
1.4 以前では、 namazu, mknmz の設定はそれぞれ namazu.conf, conf.pl で行ったが 2.0 では namazurc, mknmzrc に変更された。
mknmzrc (/usr/local/etc/namazu/mknmzrc)
mknmz の基本設定を行なう。
namazurc (/usr/local/etc/namazu/namazurc)
Namazu の動作を変更したいときに、その設定をする。 Index, Replace, Logging, Lang, Template の設定ができる。 詳しくは説明書を参照のこ と。
Perl モジュール (Perl module)
NKF, KAKASI, ChaSen などは以前は Namazu から外部プロセ スとして呼出されていた。この場合、プロセスをファイル毎に起動するので 時間がかかる。 現在の版では、これらの perl モジュールを使うしくみが用意されて、 perl からモジュールとして呼出されるようにできる。 そうするとプロセスを起動しないで済む分、実行速度が速くなる。
この機能は Namazu-1.3 以前では提供されていない。 1.4 以降の機能である。 Namazu に必要な Perl のモジュールが入っているかどうかは
perl -MText::Kakasi -e ''
perl -MText::ChaSen -e ''
perl -MNKF -e ''
のように入力した時に、何も表示されなければいい。 その状態で namazu で ./configure すると、これらが使われる。

参照

KAKASI - 漢字→かな(ローマ字)変換プログラム
漢字かなまじり文をひらがな文やローマ字文に変換することを目 的として作成したプログラムと辞書
原作:高橋裕信さん、保守:KAKASI Project
Namazu ではこれを転じてわかち書き処理に使っている。
http://kakasi.namazu.org/
開発・配布元の情報
http://www.namazu.org/
よくある質問と答 (FAQ)日本語
http://www.namazu.org/FAQ.html
Namazu メイリングリスト
http://www.namazu.org/ml.html
Namazu開発版
http://www.namazu.org/unstable/

Namazu Homepage

$Id: tutorial.html,v 1.42 2000/10/12 08:53:52 rug Exp $
developers@namazu.org