Project Namazu | 1.9.13 | namazu-1.9.14 | cvs 版 | Namazu 入門(私家版) | site map (namazu)
初めに戻る | 参照 | 四つの版 | 準備・make | --help | 動作確認 (索引作成 mknmz) | mknmz の調整 | 動作確認 (検索 namazu) | .namazurc | cgi-bin | 用語 | その他 | 設置資源 | 日記(cvs 版) [installer]

Last Update 19:53:39 03/12/08

Namazu/NetBSD 1.9.14


「高林哲さんの作られた検索系 Namazu を NetBSD で動かして見よう」 を用意して見ました。(但し NetBSD に依存した話は、わずかです) 以前の 1.4.0.8 の情報はこちらにあります。

ここに書いてあることは 1.9.5 ...1.9.14 が混っているので、おかしい ことがあるかも知れません。僕にメールを下さるか、一般的な質問 は namazu ML の方にお願いします。

【参照】

namazu-1.9.14
2000/01/19 に作られた pre 2.0 というべきもの。
2.0 の cvs tree の 2000/01/19 頃のものと言うことも出来る。
http://openlab.ring.gr.jp/namazu/proto/ namazu-1.9.14.tar.gz
Kakasi 2.3.1
高橋裕信さんの作られた kakasi-2.2.5 を野首さんが修正して namazu などに使いやすくしたもの
http://kakasi.namazu.org/ index.html.ja
開発配布元・高林さんからの情報
http://openlab.ring.gr.jp/namazu/index.html.ja
その中にある説明書
ただし、まだ 1.3.x のものしかないと思う
http://openlab.ring.gr.jp/namazu/manual.html
(同じく)良くある質問と答 (FAQ)日本語
http://openlab.ring.gr.jp/namazu/FAQ.html.ja
Namazu メイリング・リスト
http://openlab.ring.gr.jp/namazu/ml.html.ja
やまだあきらさんの namazu.el (Emacs/Mule client)
http://arika.org/linux/tools/namazu-el/
Namazu Beta version (proto)
ここの説明で使っている 1.9.14 はここにある
現在は proto と unstable は同じもの
http://openlab.ring.gr.jp/namazu/proto/
NT 4.0 Option PackのIIS 4.0/PWSでNamazu for Win32を動かすには
http://www.mountain.moriguchi.osaka.jp/tech/namazu/
高林さんによる最近の Web の更新について
links
(全然関係ないのですが)高林さんの LINK 集その一電子辞書関係
http://openlab.ring.gr.jp/edict/links.html
高林さんの LINK 集その二 C Programming
http://cl.aist-nara.ac.jp/~satoru-t/programming/c.html
初めに戻る | 参照 | 四つの版 | 準備・make | --help | 動作確認 (索引作成 mknmz) | mknmz の調整 | 動作確認 (検索 namazu) | .namazurc | cgi-bin | 用語 | その他 | 設置資源 | 日記(cvs 版) [installer]

【四つの版】

Namazu の版には(大きく分けて) 1.3 以前, 1.4, 1.9, 2.0 の四つがある いま、 初めて namazu を使うとして、そこそこの性能、特に mknmz の速度が欲しかったら、1.9 を使うのがいい。 また 1.3 を使っている人も、仕様などに不満がある時に 「1.9 なら出来ますよ」という助言が聞かれるようになっているので、 そろそろ移行時ではないかと思う。 (速度のために NKF, Kakasi, Chasen, などの Perl 部品を使う。その分 設置にはほんの少しだけ手間が増える。Perl 部品化は入れなくても動くはず。)

ただし大規模(または責任のある)運用版にはまだ向かないかも知れない。
(ということになっているが僕はそうは思わない。一番の欠点は、きちん とした文書が用意されていないこと。 それと、開発の途中なので、こまかい仕様が変ってしまうこともある。 動くまでが大変かも知れないが、そ の後は問題ないと思う)

さて、実際に Namazu と言われているものは、次の二つ

から出来ている。 後者については必ずしもこれを使わなくても 他にいろいろな人が他の動作系を用意している。 emacs, tcl/tk, perl 版 などがある。

初めに戻る | 参照 | 四つの版 | 準備・make | --help | 動作確認 (索引作成 mknmz) | mknmz の調整 | 動作確認 (検索 namazu) | .namazurc | cgi-bin | 用語 | その他 | 設置資源 | 日記(cvs 版) [installer]

【準備と make】

1.9 の版を作るために次のものが必要になる。(お名前の敬称は略させていただきます。ごめんなさい)
名称説明 必須 最新版必要な版 譜名 作成・配布 入手先(例) 設置例 使い方
PerlPerl 言語処理系 5.005_035.004 perl-5.005_03.tar.gz Larry Wall GNU CPAN CPAN macppc
nkfNetwork Kanji Filter 漢字コード変換系 1.91.71 nkf171.shar 河野眞治 琉球大学
NKFnkf Perl 部品化 1.91.71 macppc
kakasi 日本語・ ローマ字 変換系2.3.1<= kakasi-2.3.1.tar.gz 野首貴嗣 namazu.org sparc
Text::Kakasi Kakasi Perl 部品化 1.00<= Text-Kakasi-1.00.tar.gz sparc
Chasen (茶筌) -- 日本語 形態素 解析器 2.01<= chasen-sys2.01 -ipadic2.0.tar.gz 奈良先端大学 | ftp:// 配布方針 sparc
Text::ChaSen ChaSen Perl 部品化 0.20<= Text-ChaSen-0.20.tar.gz 野首貴嗣 Text::ChaSen sparc
gettextMessage localization 0.10.35<= gettext-0.10.35.tar.gz FSFGNU macppc BSD make を使う場合は PATCHES.GT を当てておく
File-MMagic File 種別 0.19<= File-MMagic-0.19 野首貴嗣 CPAN dist cd File-MMagic ; perl Makefile.PL ; make ; (su) make install
当然、次のものも必要である。
Namazuなまず本体 1.9.14<= namazu-1.9.14.tar.gz Project Namazu namazu/proto/ ./configure; make ; make install だけで設置出来る

【mknmz make install 前の確認】

もし make install する前に mknmz を試して見たいという時には cd scripts してから ./mknmz とすると、すぐ隣にある ../pl/*.pl を参 照するので、都合がいい。 (この辺の事情は mknmz の中の load_module() の中の @INC の文字の辺 で分る)。

./mknmz -C ./mknmz --help ./mknmz -O /tmp ~/Mail などを試せる。

初めに戻る | 参照 | 四つの版 | 準備・make | --help | 動作確認 (索引作成 mknmz) | mknmz の調整 | 動作確認 (検索 namazu) | .namazurc | cgi-bin | 用語 | その他 | 設置資源 | 日記(cvs 版) [installer]

【help】

以上 mknmz と namazu の二つの使い方は引数無で起動するととても簡単な説明が、 --help と入力すると長い説明が表示される。また -C を付けると その時の構成を表示する。この三つ
操作行で説明などを得る方法
引数 意味その他に引数を付けると 実行例
mknmz namazu
とても簡単な説明(他の引数・選択は付けられない)
--help詳しい説明 (他の引数・選択は無視される) * *
-C その時の構成 (他の引数・選択も意味がある) * *
は覚えておくといいと思います。 この他に HTML 形式の説明書が (doc/ の下に) あります。

初めに戻る | 参照 | 四つの版 | 準備・make | --help | 動作確認 (索引作成 mknmz) | mknmz の調整 | 動作確認 (検索 namazu) | .namazurc | cgi-bin | 用語 | その他 | 設置資源 | 日記(cvs 版) [installer]

【動作確認 mknmz】

さて、組立たばかりのものを使って、まずは索引を作る。 これには次のようにする。1.4.0.8 からは少し書式が変っていて URL の置換は --replace を使って明示的に指定する ようになった。 (但し namazu で表示する時にも REPLACE が出来る。 mknmz では --replace を指定しないで実行し、 namazu の実行時に .namazurc の方で調整する。という方法である。 高林さんは、その方をすすめるようにすると書いている)
mknmz [options] 検索 directory
とする。この場合、結果の検索索引(index) は現案内 (current directory) に作られる。もし出力先を変更 したい時には -O を使う。

例えば

mkdir /tmp/index
cd /home/htdocs/software
mknmz -O /tmp/index \
--replace='s#/home/htdocs/software/#http://www.ki.nu/software/#' .
などとして見る。(最後のピリオドにも注目)
この例は 実行の最初の方に次のように表示されるが、
 find_target: Scanned : (1267), Files: (1265), Elapsed: (8), Files/sec: (158.1).
find_target という処理の中で、1267 個の譜が見つかったが、 $DENY_REGEX $EXCLUDE_REGEX $ALLOW_REGEX $HTML_SUFFIX などの設定により、そのうち 1265 を処理する。この部分にかかった秒数 は 8, 一秒に 158 個の割合で譜を調べた。 という意味になる。Scanned/Files の差が自分の意図 と違っている場合は、上記 四変数を調べた方がいい。 (通常 .mknmzrc に設定する)。

初めに戻る | 参照 | 四つの版 | 準備・make | --help | 動作確認 (索引作成 mknmz) | mknmz の調整 | 動作確認 (検索 namazu) | .namazurc | cgi-bin | 用語 | その他 | 設置資源 | 日記(cvs 版) [installer]

【mknmz の調整】

mknmz の操作行の指定の説明は mknmz --help で、また、 -C を付けると、その時の構成を表示してくれる。 これらについては --help の項目を参照のこと。

conf.pl と .mknmzrc

namazu-1.9.14/lib/conf.pl が設置される先の /usr/local/share/namazu/lib/conf.pl に定義されている変数は ~/.mknmzrc の中で 設定を変更することが出来る

検索を作る対象について

短縮形本名説明
-a--all を付けると全て調べる
-e--robots-txt ロボットよけされているファイルを除外する
-A--htaccess .htaccess で制限されたファイルを除外する
-F--target-list=fileインデックス対象のファイルのリストを読み込む
-t--media-type=mtype対象ファイルの文書形式を指定する
--allow=regex 対象ファイル名の正規表現を指定する
--deny=regex 除外するファイル名の正規表現を指定する
--exclude=regex除外するパス名の正規表現を指定する
現在の版(少なくとも 1.9.5) では

初めに戻る | 参照 | 四つの版 | 準備・make | --help | 動作確認 (索引作成 mknmz) | mknmz の調整 | 動作確認 (検索 namazu) | .namazurc | cgi-bin | 用語 | その他 | 設置資源 | 日記(cvs 版) [installer]

【動作確認 namazu

初めは操作行 (command line) で
/usr/local/bin/namazu 検索文字列
を試すのが手軽である。

無指定では、namazu は /usr/local/var/namazu/index に検索索引を見に行く

初めに戻る | 参照 | 四つの版 | 準備・make | --help | 動作確認 (索引作成 mknmz) | mknmz の調整 | 動作確認 (検索 namazu) | .namazurc | cgi-bin | 用語 | その他 | 設置資源 | 日記(cvs 版) [installer]

.namazurc

namazu の実行時に設定を出来るしくみがある。 通常 .namazurc という名前の譜に設定するが、これを 次のように探す
/*
 * 1. current_executed_binary_dir/.namazurc
 * 2. ${HOME}/.namazurc
 * 3. DEFAULT_NAMAZURC (SYSCONFDIR/namazurc)
 */

通常 SYSCONFDIR は /usr/local/etc/namazu になっている。 ./configure --sysconfdir= で変更出来る
この仕組を使えば、同じ namazu でも例えば cgi-bin の path 毎に INDEX を変えたり、LANG を変更したり出来る

さて、設定出来る項目については、 src/rcfile.c の 98 行目辺りに次のような部分があるので分る。

static struct conf_directive directive_tab[] = {
    { "BLANK",         0, 0, process_rc_blank },
    { "COMMENT",       0, 0, process_rc_comment },
    { "DEBUG",         1, 0, process_rc_debug },
    { "INDEX",         1, 0, process_rc_index },
    { "ALIAS",         2, 1, process_rc_alias },
    { "REPLACE",       2, 0, process_rc_replace },
    { "LOGGING",       1, 0, process_rc_logging },
    { "SCORING",       1, 0, process_rc_scoring },
    { "LANG",          1, 0, process_rc_lang },
    { "EMPHASISTAGS",  2, 0, process_rc_emphasistags },
    { "TEMPLATE",      1, 0, process_rc_template },
    { NULL,            0, 0, NULL }
};

以上の変数を設定出来る。
変数設定内容説明
BLANK-利用出来ない(内部用)
COMMENT-利用出来ない(内部用)
DEBUGON/OFF 内部動作表示の入切をする (主とし て、開発者用)
INDEXPATH索引の位置
ALIASnameINDEX の別名を設定 別稿参照
REPLACEs/path/http/ など path の置換 別稿参照
LOGGINGON/OFF 記録を取るかどうか設定する
SCORING TFIDF/SIMPLE 検索結果の点数付の方法
LANGen/ja処理の言語を設定。 環境変数LANGが設定されていないときのみ有効。主として CGI 向けの設定項目である。
EMPHASISTAGSキーワードを強調するタグを設定する
TEMPLATEPATH 検索結果の表示の際に用いる NMZ.{head,foot,body,tips,results} ファイルが置かれているディレクトリを設定する。
実際に(現時点の設定が) どのように解釈されているかは -C を付けて実行すると表示する 例えば、 ~/.namazurc がなくて LANG=japanese の場合には次のようになっている。
(この項 1.9.12 から更に変更している。1.9.12 の場合と少し表示が違う)

> namazu -C
設定ファイル:  /usr/local/etc/namazu/namazurc
インデックス (Index): /usr/local/var/namazu/index
<BASE>タグ (Base):    unsupported
ログの記録 (Logging): on
使用する言語 (Lang):  japanese
スコア計算 (Scoring): tfidf

また LANG=C なら 次のようになる
> ( setenv LANG C ; namazu -C )
Config:  /usr/local/etc/namazu/namazurc
Index:   /usr/local/var/namazu/index
Base:    unsupported
Logging: on
Lang:    C
Scoring: tfidf
初めに戻る | 参照 | 四つの版 | 準備・make | --help | 動作確認 (索引作成 mknmz) | mknmz の調整 | 動作確認 (検索 namazu) | .namazurc | cgi-bin | 用語 | その他 | 設置資源 | 日記(cvs 版) [installer]

cgi-bin

Web で cgi を実行出来るようにするには、いくつかの条件があるかも知 れない。apache の場合 設定として
ScriptAlias /cgi-bin/ /usr/local/apache/cgi-bin/ /cgi-bin/ と来た時に、どこを見に行くか
AddHandler cgi-script .cgi .cgi と付いていれば cgi として実行する
AllowOverride All .htaccess での設定を有効にする(= 許可する)(管理者)
Options ExecCGI cgi-bin の実行を許す
DirectoryIndex index.html URL が directory を指している時に探す譜名
などが関係して来る。(管理者)と書いてあるもの以外は .htaccess にも 書ける(ただし apache の設置時にそれを禁止することも出来るので不可の場合もある)

【再実行】

mknmz には --update= という選択がある。

これをどのような時に使うかと言うと、 以前に実行したことのある mknmz を同じ条件で、 更新する時である。

索引の中 (NMZ.status) に、 以前に実行した時の設定を覚えている。これを使って、 それと同じように実行する。つまり、

mknmz --update=(以前の索引の置いてあるところ)
とするだけで、全て同じ条件で更新する。 初めに戻る | 参照 | 四つの版 | 準備・make | --help | 動作確認 (索引作成 mknmz) | mknmz の調整 | 動作確認 (検索 namazu) | .namazurc | cgi-bin | 用語 | その他 | 設置資源 | 日記(cvs 版) [installer]

【用語】

Kakasi
本来は「漢字で書かれたもの」を「ひらがな・カタカナ・roma-ji 」 などに変換する系。しかしここでは次々項の「わかち書き」をする道具とし て使う。
Chasen (茶筌)
「日本語形態素分析器」であるが、やはり同様に「わかち書き」 (正確には日本語の単語の切出し)に使っている。
わかち書き
日本語 は (英語 と 違って)単語 の 区切り に 空白 を 書いたり は しない。 そのまま では 計算機 の 処理 に 不都合 が ある ので、単語毎 に 分けて、 間 に 空白 を 入れて 書いた もの を 利用する。 そういう書き方を「わかち書き」と言う。 (用語としては計算機用語として以外にも同じ意味で使われる)
インデックス(名詞)
検索索引
なまずは
         (準備)     (検索画面)
          mknmz       namazu
         ↑   ↓     ↓    ↓
元々の資料    検索索引     検索結果
           (インデックス)
のようにして予め検索索引を作っておき、検索画面での 入力があった時には、それを見て結果を表示するという動作を する。この「予め作られた「検索索引」のことをインデックス と呼んでいる。
なまずの場合 NMZ.* のような名前のものが それにあたる。

mknmz の時には、無指定で現案内 (current directory) に書き出す。 これは -O directory で変更することが出来る。 (指定する案内(directory) は予め作っておくこと。 そうでないと Invalid directory というような文字が表示される)

namazu の時には 無指定で /usr/local/var/namazu/index に、 また .namazurc の INDEX の行で変更することが出来る

実際にどのような名前のものが出来るかの一覧 も用意して見ました。

インデックス(動詞)
上記検索索引を作ること。mknmz を使う
複数インデックス
二つ以上の検索索引を作っておいて、それらの中をまとめて 検索する機能 説明書の中に実現方法が書いてある。
フレーズ検索
なまずの検索の基本は単語の組合せである。 "単語 and 組合せ" と(順を逆にした) "組合せ and 単語" は区別しない。これを "単語 組合せ"という 文字列がそのままの順で出現するものを探す機能のこと。
conf.pl
1.4 以前は mknmz の実行時の設定が書いてあったが、1.9 では
  1. mknmz -f で指定された譜
  2. mknmz がある案内 (directory) の .mknmzrc
  3. ~/.mknmzrc
  4. @SYSCONFDIR@/mknmzrc
     (通常 /usr/local/etc/namazu/mknmzrc)

の優先順位で mknmz の設定ファイルを読む。実際には上記 4 3 2 1
の順で読み設定を上書きして行くので、設定としては上の順に優先される。
conf.pl はまだ残っているが、これは ~/.mknmzrc 変更したいようなものの設定がしてある
namazurc (/usr/local/etc/namazu/namazurc)
namazu の動作を make 時から変更したいというような時に、その 設定が書ける。 説明は次のところにある。 http://openlab.ring.gr.jp/namazu/manual.html.ja#NAMAZU_CONF INDEX, REPLACE, BASE, WAKATI, LOGGING OFF, LANG ja の設定が出来る。
Perl 部品化 ( Perl module)
program を単体としてではなく、 Perl の部品として起動 出来るしくみ
nkf, kakasi, chasen などは以前は namazu から外部 process として呼出さ れるようになっていた。この場合、process を別に起動するということで 時間がかかる。 現在では、これらの perl 部品が用意されて、 perl から部品(module)として呼出されるように出来る。 そうすると process を起動しないで済む分、実行速度が有利になる。
この機能は namazu-1.3 以前では提供されていない。 1.4 以降の機能である。

なまずに必要な Perl の部品が入っているかどうかは
perl -MText::Kakasi -e ''
perl -MText::ChaSen -e ''
perl -MNKF -e ''
のように入力した時に、何も表示されなければ良い。
初めに戻る | 参照 | 四つの版 | 準備・make | --help | 動作確認 (索引作成 mknmz) | mknmz の調整 | 動作確認 (検索 namazu) | .namazurc | cgi-bin | 用語 | その他 | 設置資源 | 日記(cvs 版) [installer]

【その他】

対象譜について
指定した「検索 directory 」の中で、 何が検索の対象になるかという疑問があるとしたら、答えは、 (conf.pl の中か ~/.mknmzrc の) $TARGET_FILE, $DENY_FILE の設定。それと -a 選択で決まる。
mew-1.94b2x と mew-nmz.el
mew には namazu と連動して
  • mknmz を起動して必要な検索索引を作り
  • 検索した結果を使って virtual folder を作成する
機能が contrib/mew-nmz.el にあり、説明は contrib/00readme-namazu.jis に書いてある。使い始めると、 これなしで使っていた自分は何だったんだろうという気にさえ なってしまう。
初めに戻る | 参照 | 四つの版 | 準備・make | --help | 動作確認 (索引作成 mknmz) | mknmz の調整 | 動作確認 (検索 namazu) | .namazurc | cgi-bin | 用語 | その他 | 設置資源 | 日記(cvs 版) [installer]

【設置時に必要な資源への LINK】

河野眞治さんの nkf (Network Kanji Filter)
ftp://ftp.ie.u-ryukyu.ac.jp/pub/software/kono/ nkf171.shar
馬場 肇さんの kakasi-2.2.5/kakasi-ext などの保存
ftp://ftp.kusastro.kyoto-u.ac.jp/pub/baba/wais/
高橋裕信さんの kakasi-2.2.5
IIJ archie で探す kakasi
馬場 肇 kakasi-ext (わかち書き修正)
IIJ archie で探す kakasi-ext
野首さんの Text::Kakashi
http://www.daionet.gr.jp/~knok/kakasi/
ChaSen (茶筌) -- 日本語形態素 解析器
http://cactus.aist-nara.ac.jp/lab/nlt/chasen.html
野首さんの Text::Chasen
http://www.daionet.gr.jp/~knok/chasen/
Namazu Beta version (proto)
http://openlab.ring.gr.jp/namazu/proto/





















Comments on anything welcome to makoto@ki.nu

Count.cgi (since 2000/01/29)