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.005_035.004 perl-5.005_03.tar.gz Larry Wall GNU CPAN CPAN
nkfNetwork Kanji Filter 漢字コード 変換系 1.91.71 nkf171.shar 河野眞治 琉球大学
NKFnkf Perl モジュール化 1.91.71
KAKASI 日本語・ ローマ字 変換系2.3.1<= kakasi-2.3.1.tar.gz KAKASI Project namazu.org
Text::Kakasi KAKASI Perl モジュール化 1.01<= Text-Kakasi-1.01.tar.gz 野首貴嗣 Text::Kakasi
Chasen (茶筌) -- 日本語 形態素 解析器 2.02<= chasen-sys2.02 -ipadic2.1.tar.gz 奈良先端大学 | ftp:// 配布方針 2.02 以前では libchasen.a について下記参照
Text::ChaSen ChaSen Perl モジュール化 0.20<= Text-ChaSen-0.20.tar.gz 野首貴嗣 Text::ChaSen
File::MMagic File 種別 ×0.20<= File-MMagic-0.20.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, Base, 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 2.3.1
漢字かなまじり文をひらがな文やローマ字文に変換することを目 的として作成したプログラムと辞書
原作:高橋裕信さん、保守: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.el (Emacs/Mule client)
http://arika.org/linux/tools/namazu-el/
Namazu開発版
http://www.namazu.org/unstable/

Namazu Homepage

$Id: tutorial.html,v 1.39 2000/04/06 01:40:01 satoru Exp $
developers@namazu.org