[English | Japanese]
Namazu 2.0 を初めて使う方のための入門書です。
を対象に、Namazu を使い始める時の困難を少しでも減らせるよう にという目的で書かれています。Namazu の全ての機能については、 説明書 があります。またインストー ルについては INSTALL-ja ファイルに説明があります。
1.3.0.x から 2.0 への開発は次のように推移してきました。
Namazu は大きくわけて mknmz, namazu, namazu.cgi の三つから構成されています。
2.0 の版を作るために次のソフトウェアが必要です。(お名 前の敬称は略させていただきます)
名称 | 説明 | 必須 | 最新版 | 必要な版 | ファイル名 | 作成・配布 | 入手先(例) | その他 |
---|---|---|---|---|---|---|---|---|
Perl | Perl 言語処理系 | ○ | 5.8.8 | >= 5.004 | perl5.005_03.tar.gz | Larry Wall GNU CPAN | CPAN | |
make | コンパイル支援ソフトウェア | 3.81 | make-3.81.tar.gz | FSF | GNU | システム付属のmakeでコンパイルできない場合に必要 | ||
gettext | メッセージの国際化 | 0.14.6 | >= 0.13.1 | gettext-0.14.6.tar.gz | FSF | GNU | Solaris は必須 |
|
nkf | Network Kanji Filter 漢字コード 変換系 | ○ | 2.0.7 | >= 1.71 | nkf207.tar.gz |
河野眞治 古川令 |
nkf_utf8 | 1.90, 1.92 は問題があるので最新版もしくは 1.71 を使う(脚注参照) |
NKF | nkf Perl モジュール化 | ▲ | 2.0.7 | >= 1.71 | ||||
KAKASI | 日本語・ ローマ字 変換系 | △ | 2.3.4 | >= 2.x | kakasi-2.3.4.tar.gz | KAKASI Project | namazu.org | |
Text::Kakasi | KAKASI Perl モジュール化 | ▲ | 2.04 | >= 1.05 | Text-Kakasi-2.04.tar.gz | 野首貴嗣 小飼弾 |
CPAN dist | |
Chasen | (茶筌) -- 日本語 形態素 解析器 | △ | 2.3.3 | >= 2.02 | chasen-2.3.3.tar.gz | 奈良先端科学技術大学院大学 | 配布方針 | 2.02 以前では libchasen.a について下記参照 |
Text::ChaSen | ChaSen Perl モジュール化 | ▲ | 1.03 | <= | Text-ChaSen-1.03.tar.gz | 野首貴嗣 | Text::ChaSen | |
MeCab | (和布蕪) -- 日本語 形態素解析器 | △ | 0.93 | >= 0.6 | mecab-0.93.tar.gz | 工藤 拓 | MeCab | Namazu 2.0.15 から正式対応 (MeCab 0.90 以降は Namazu 2.0.16 以降で対応) |
mecab-perl | MeCab Perl モジュール化 | ▲ | 0.93 | >= 0.76 | mecab-perl-0.93.tar.gz | 工藤 拓 | MeCab | Namazu 2.0.15 から正式対応 (MeCab 0.90 以降は Namazu 2.0.16 以降で対応) |
File::MMagic | File 種別 | × | 1.27 | >= 1.20 | File-MMagic-1.27.tar.gz | 野首貴嗣 | CPAN dist | Namazu の配布に同梱されています |
全て用意しておいた場合 | (無指定ではわかち書きに KAKASI を使いますが、 茶筌は -c オプション、和布蕪は -b オプションを 指定するだけで使用できます。) |
ひとつ以上用意している場合 | ./configure の時点で KAKASI/ChaSen/MeCab のいずれを使うかが選ばれます。 (KAKASI を用意している場合は -k オプション、 茶筌を用意している場合は -c オプション、 和布蕪を用意している場合は -b オプションを 指定するだけで使用できます。) |
perl Makefile.PL; make; make install
と実行するだけです。
問題がなければ入れておいた方がいいでしょう。
cp libchasen.a /usr/local/lib ranlib /usr/local/lib/libchasen.a # ここはシステムに応じてと実行する必要があります。
Namazu 2.0.6 から環境変数の扱いが修正されました。また、mknmz にコマンド行引数が新設されました。
Namazu 2.0 を日本語環境で利用するには言語の切換を行う環境変数の設定が必要です。
2.0.5 までは、以下のようにメッセージの表示と言語処理の両方で、 全く同じ環境変数を用いていました。
【メッセージの表示】 | LANGUAGE | LC_ALL | LC_MESSAGES | LANG |
【言語処理】 | LANGUAGE | LC_ALL | LC_MESSAGES | LANG |
2.0.6 からは以下のように修正されました。
【メッセージの表示】 | LANGUAGE | LC_ALL | LC_MESSAGES | LANG |
【言語処理】 | LC_ALL | LC_CTYPE | LANG |
日本語の表示が欲しい時や、日本語の処理をしたい時には、 これらの変数に、
Unix OS | ja |
Windows | ja_JP.SJIS |
等と設定します。例えば次のような方法で
C shell 等 | Bourne shell 等 |
setenv LANG ja |
LANG=ja; export LANG |
Mac OS X + gettext 0.14.2 以降の場合
【メッセージの表示】 | LANGUAGE | 【MacOS X の言語環境】 | LC_ALL | LC_MESSAGES | LANG |
LANG に ja を設定し
(それ以外の変数に何も設定されていなければ)、
全て日本語の表示をし、
検索対象を日本語として処理します。
ja
という値が適当でない時には
ja_JP
, ja_JP.eucJP
,
ja_JP.EUC
, ja_JP.ujis
などという値が必要とされる場合(システム)もあります。
mknmz 実行時に環境変数が適切に設定されていないと、 わかち書きが正しく行なわれず、 (生成された索引の一つである) NMZ.w を覗いて見ると、 本来なら単語が一行に一つづつ書いてあるはずなのに、 長い文章が書いてあって、namazu/namazu.cgi で検索しても 正しく見つけてくれないという問題が起きたり、 filter が日本語について正しく動作しなかったりします。
2.0.6 から mknmz に --indexing-lang=LANG
が新設されました。
前述の環境変数の設定にかかわらなく mknmz の処理について
言語の指定が出来ます。--indexing-lang=ja
などとします。
ja
という値が適当でない時には
ja_JP
, ja_JP.eucJP
,
ja_JP.EUC
, ja_JP.ujis
などという値が必要とされる場合(システム)もあります。
このオプションが指定されていない場合は前述の環境変数が参照されます。
namazurc または .namazurc に次のように書きます。(一例です)
Lang: ja
置く位置などについては 説明書 を参照して下さい。
もし make install する前に mknmz を試してみたいという時には
cd namazu-2.0.x ( ... tar.gz 形式を開けた位置) してから env pkgdatadir=`pwd` scripts/mknmz (csh/tcsh 等の場合) または pkgdatadir=. scripts/mknmz (sh/bash 等の場合).
とすると、
(/usr/local/share/namazu
でなく)
すぐ隣にある pl,filter,template 等を参照します。
(この辺の事情は mknmz 等の中の変数 $PKGDATADIR の文字列付近を見ると 少し分ります。)
同じようにして、
setenv pkgdatadir .
または
pkgdatadir=.
export pkgdatadir
しておいて、
scripts/mknmz -C
scripts/mknmz --help
scripts/mknmz -O /tmp ~/Mail
などが試すと、それぞれ、構成を表示・説明を表示・~/Mail の索引を作成する、 などを行うことが出来ます。 ただし、 make install 前は日本語でのメッセージ出力は行えません。
以上 mknmz と namazu の 2つの使い方は引数無しで起動すると簡 単な説明が、--help と入力すると長い説明が表示されます。また -C を付けるとその時の構成を表示します。この 3つは覚えておくと便利です。
引数 | 意味 | その他に引数を付けると |
---|---|---|
無 | とても簡単な説明 | (他の引数・選択は付けられない) |
--help | 詳しい説明 | (他の引数・選択は無視される) |
-C | その時の構成 | (他の引数・選択も意味がある) |
まずはインデックスを作ります。
(もし 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.X
/foo/bar/doc
「/foo/bar/doc/
に置いてあるものは
外から見ると、
http://foo.bar.jp/software/
の下に見えるもの
なので、(Perl 語で言うと)
s#aaa#bbb#
のように置換してね」という意味です。
(上の例では aaa (/foo/bar/doc/)
bbb (http://foo.bar.jp/) となります。)
Namazu は元々は HTML 形式のものを処理するために作られました が、現在では様々な文書形式を取り扱うことができます。 /usr/local/share/namazu/filter というディレクトリに手がかり が、また説明書の中の 文書フィ ルタ の節に詳しい説明があります。
% mknmz ~/Mail/foobar
mknmz のコマンド行引数は、mknmz --helpとすると得ら れます。また-C を付けると、その時の構成を次のように表示してくれます。
読み込んだ設定ファイル: /home/foobar/.mknmzrc システム: linux Namazu: 2.0.X Perl: 5.00503 File-MMagic: 1.27 NKF: module_nkf KAKASI: module_kakasi -ieuc -oeuc -w 茶筌: module_chasen -i e -j -F "%m " 和布蕪: module_mecab -Owakati -b 8192 わかち書き: module_kakasi -ieuc -oeuc -w メッセージの言語: ja_JP.eucJP 言語: ja_JP.eucJP 文字コード: euc CONFDIR: /usr/local/etc/namazu LIBDIR: /usr/local/share/namazu/pl FILTERDIR: /usr/local/share/namazu/filter TEMPLATEDIR: ../template 対応メディアタイプ: (43) 未対応メディアタイプ: (1) 必要ツールが $path にないものには (-) を表示 application/excel: excel.pl application/gnumeric: gnumeric.pl application/ichitaro5: taro56.pl application/ichitaro6: taro56.pl application/ichitaro7: taro7_10.pl application/macbinary: macbinary.pl application/msword: msword.pl application/pdf: pdf.pl application/postscript: postscript.pl application/powerpoint: powerpoint.pl application/rtf: rtf.pl application/vnd.kde.kivio: koffice.pl application/vnd.kde.kpresenter: koffice.pl application/vnd.kde.kspread: koffice.pl application/vnd.kde.kword: koffice.pl application/vnd.oasis.opendocument.graphics: ooo.pl application/vnd.oasis.opendocument.presentation: ooo.pl application/vnd.oasis.opendocument.spreadsheet: ooo.pl application/vnd.oasis.opendocument.text: ooo.pl application/vnd.sun.xml.calc: ooo.pl application/vnd.sun.xml.draw: ooo.pl application/vnd.sun.xml.impress: ooo.pl application/vnd.sun.xml.writer: ooo.pl application/x-apache-cache: apachecache.pl application/x-bzip2: bzip2.pl application/x-compress: compress.pl - application/x-deb: deb.pl application/x-dvi: dvi.pl application/x-gzip: gzip.pl application/x-js-taro: taro7_10.pl application/x-rpm: rpm.pl application/x-tex: tex.pl application/x-zip: zip.pl audio/mpeg: mp3.pl message/news: mailnews.pl message/rfc822: mailnews.pl text/hnf: hnf.pl text/html: html.pl text/html; x-type=mhonarc: mhonarc.pl text/html; x-type=pipermail: pipermail.pl text/plain text/plain; x-type=rfc: rfc.pl text/x-hdml: hdml.pl text/x-roff: man.pl
短縮形 | 本名 | 説明 |
---|---|---|
-F | --target-list=file | インデックス対象のファイルのリストを読み込む |
-t | --media-type=mtype | 対象ファイルの文書形式を指定する |
--allow=PATTERN | 対象ファイル名の正規表現を指定する | |
--deny=PATTERN | 除外するファイル名の正規表現を指定する | |
--exclude=PATTERN | 除外するパス名の正規表現を指定する |
検索を行うにはコマンド行で次のように実行します。
% 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 の設定次第でそれを禁止されていることもあります)。
ここに書いてあることは「保証」ではありません。 開発者の希望が書かれているだけです。
(準備) (検索画面) mknmz namazu ↑ ↓ ↑ ↓ 元々の資料 インデックス 検索結果Namazu はあらかじめ単語の索引を作っておき、検索要求があっ たときには、それを元に検索を行う。この「あらかじめ作 られた「索引」のことをインデックスと呼んでいる。
Index, Replace, Logging, Lang, Template
の設定ができる。
詳しくは説明書を参照のこ
と。
perl -MText::Kakasi -e '' perl -MText::ChaSen -e '' perl -MMeCab -e '' perl -MNKF -e ''のように入力した時に、何も表示されなければいい。 その状態で namazu で ./configure すると、これらが使われる。