Namazu FAQ

Last Modified: 1998-05-20


Namazu に関するよくある質問、ありそうな質問とその答えをまとめた文書です。 このファイルの最新版は http://openlab.ring.gr.jp/namazu/FAQ.html にあります。

目次

Namazu 一般

Namazuの解説書はありますか

日本語全文検索システムの構築と活用, 馬場肇著, ソフトバンク刊, 2,800円 (税別)
が出版されました。買いませう :-)

他の検索エンジンとはどう違うのですか

Namazu はできるかぎりお手軽に使えることを目指しています。 技術的には決して高度なものではありませんが、 手軽に使えるという面では割といい線をいっていると思います。 ただし、別途 KAKASI/ChaSen とその辞書が必要なので使えるディスク容量に余裕がないと使えません。 詳しくは intro.htmlを参照してください。 メイリングリストを開設して比較的活発にメンテナンスが行われているのも特徴といえると思います。

Windows 95/NT で使いたいのですが

Win32版に関する詳しい情報は広瀬さんによる 全文検索システム Namazu for Win32のページを参照してください。

OS/2 で使いたいのですが

OS/2版に関する詳しい情報は清水さんによる Kaz SHIMZ (SHIMIZU Kazuyoshi) presents "NetWarp World"のページを参照してください。

バグみたいなのですが

もしも古い Namazu をお使いならば最新のものを試してみてください。 この FAQもよく読んでみてください。既に解決しているかもしれません。 そうでなければ作者またはメイリングリストの方へご報告ください。 できるだけ対処したく思っています。

こんな機能があったら嬉しいのですが

何か良いアイディアがあれば 作者またはメイ リングリストの方まで要望を提案してください。 念のため、その前に ToDo に目を通してみてください。 有用なものであれば取り入れていきたいと思います。

商用目的のサイトで利用したいのですが

問題ありません。どうぞご利用ください (Namazuの開発への援助は歓迎し ます)。ただし完全に無保証ですのでその点はご了承ください。Namazu の ライセンスは GPL2 に従うものとします。

Namazu はなぜフリーソフトウェアなのですか

フリーソフトウェアの文化に貢献したいと考えるからです。 ちなみに Namazu の開発環境は Plamo Linux + XFree86 + Mule + gcc + Perl + Apache と OS を含めすべてフリーソフトウェアで揃えられています。

Namazu の名前の由来は何ですか

特に意味はないです。思いつきで決めました。

初歩的な質問

動きません、教えてください (質問の仕方)

質問する前にまずマニュアルとこの FAQ をしっかり読んでください。ど うしても分からないときは

などについて簡潔な文章で書いて高林またはメイ リングリストまで報告してください (後者の方が望ましい)。ただし、 質問しても必ず答えが返ってくるとは限らないのでその辺はご了承くださ い (答える義務はありません)。初心者の方 (UNIX, CGI などに) は 日本語全文検索システムの構築と活用(なまず本)を買って参考にする のがよろしいかと思います。

超初心者です、何もわかりませんが使いたいのです

身近に詳しい人を見つけて教えてもらってください。あるいは書籍などで 自習してください。Namazu以前の初歩的な質問をメイリングリストに送ら れても困ります。

森本淳さんのお言葉

我々(?)はあなたのすぐ側には居ないわけですから、
「車のウインカーがつきません」
「ウインカーレバーを倒してみるのは?」
「ok, ウインカーつきました」
程度のアドバイスはできると思いますが、

「車のエンジンがかかりません」というのに対して、 「ではボンネットを開けて、向かって右の前から2番目にあるバッテリーの緑 のフタを外して赤いワイヤーを外して接点部の鉛の覆いを外して接点の銅に緑 青が吹いていたらそれをサンドペーパーでこすって磨いて接点復活剤をかけて また組み上げるのがまず1点。次に向かって左3番目の ECU を開けて CPU の (以下 120 行省略) 」 みたいな指摘は、超人かアポロ13号の地上指令室でもないかぎり、 残念ながらできません。

FreeBSDで mknmzが動きません

FreeBSD の /usr/bin/perl はヴァージョン 4 という古いもの だったと思います。 mknmz の先頭の /usr/bin/perl を書き替えて v5.003 以降の Perl のパスを正しく指定してください。

KAKASI の make ができません

KAKASI のドキュメントを読んでがんばってください。 または身近に詳しい人を見つけて教えてもらってください。

Namazu 動作関連

インデッ クスの更新中に検索をかけることはできますか?

できます。検索にロックがかかるのはほんの一瞬です。

インデックスの更新中に mknmz を強制終了させるとインデックスは壊れますか?

よっぽどタイミングが悪くないかぎり、壊れません。ただし、 作 業ファイル NMZ.*.12345 (数字の部分は可変)、および (インデッ クスの2重更新を防ぐ) ロックファイル NMZ.lock2 が残ってしまい ます。削除してください。

.namazurc を見えないように Web サーヴァを設定したいのですが

Apache 1.3 以降であれば


    <FilesMatch "^\.(htaccess|htpasswd|htgroup|namazurc)$">
        order allow,deny
        deny from all
    </FilesMatch>

といった感じです。.namazurc だけなら


    <Files .namazurc>
        order allow,deny
        deny from all
    </Files>

[namazu 550], SATOH Fumiyasu <fumiya@cij.co.jp> さんのメイ ルより引用。

インデックス作成の最中にどう いうわけかフロッピーディスクドライヴが動き出して困ります

『ウイルスチェッカが悪さをしている』 『レジストリのなかに "A:" を指すものがある』 とかいうのが良くある原因、と聞いたことがあります。

[namazu 508], Hideyuki SHIRAI (白井秀行) <shirai@rdmg.mgcs.mei.co.jp> さんのメイルより引 用。

複数のディレクトリをインデックス したい

なお、複数のディレクトリをインデックスしたいときは mknmz に -F オ プションを指定して

/home/hoge/foo/
/home/hoge/bar/
/home/hoge/baz/

のようなリストを渡して処理することができます (v1.3.0.0以降)。 / で 終わる行はそのディレクトリ内のファイルを再帰的に取得します。

URL を置換したい場合には

% mknmz -F list http://foo.bar.jp/ /home/hoge/

のように実行します (パス名の /home/hoge/ の部分を http://foo.bar.jp/ に置き換える)。

configure が途中で終了してしまう

configure が 'Perl not found' などとエラーメッセージを残して異常終 了したときは、 configure がソフトウェアの自動検出に失敗したことを 意味します。 環境変数 $PATH にそのプログラム (この場合は perl) へ のパスが通っているか確認してください。

CGIとして動きません

Apache なら srm.conf に

AddHandler cgi-script .cgi

の行を追加すると解決するかもしれません。

どの程度の規模のインデックスが作れます か?

報告のあったもののなかでは 377,874 ファイル、合計 1,349,975,210 bytes の文書を対象にしたものが最大です。これより規模の大きいインデッ クスを作成された方はぜひご連絡ください。

mknmz で Not enough space! で止まっ てしまいます

SunOS 5.5.1, Perl 5.004_04 の環境でそのような報告がありました。 Perl を v5.005_02 にヴァージョンを上げたところ解決したそうです。が、 しかし、後日また再発したそうです。

結局、原因は単なるメモリ不足のようです。

Mac OS 8.5 の Sherlock で文字化けしてしまう

NMZ.head.ja の

<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-2022-JP">

記述を消せば解決するようです。 なお、Namazu v1.3.0.0-beta-11 以降 では添付する NMZ.head.ja から <META HTTP-EQUIV...> を廃止し ました。代わりに HTTPのヘッダに

Content-type: text/html; charset=ISO-2022-JP

をつけています。

検索されるべき文書が結果に現われない

v1.3.0.0 では文書の更新を反映したインデックスのアップデートが可能 になっています。ゆえに

% mknmz /home/hoge/foo
% mknmz /home/hoge/bar
% mknmz /home/hoge/baz

のように数回に分けて異なるディレクトリのインデックスを作成すると、 2回目以降の処理時に mknmz は以前の文書を削除されたものと判断してし まいます。これが困る場合には 複数のディ レクトリをインデックスしたい を参照してください。

他の原因としては

といったものが考えられます。

特定の文書でインデックス処理が止まってし まう

Namazu v1.2.0.1 あたりで JPerl 5.004_04 を使っているとそういう現象 が起こります。新しい Namazu を使ってください。

mknmz を実行すると sh: no: command not found と表示されてうまく動きません

Namazu は ./configure の実行時に nkf, kakasi (chasen) のパスを $PATH から検出します。あらかじめ nkf, kakasi (chasen) を $PATH の 通っているところにインストールしておいてください。

Macintosh の Internet Explorer 4.01 で日本 語で検索をかけると結果が化けておかしくなります

MSIE 4.01 for Macintosh は、GET メソッドで渡すとき、URL のエンコードが 一段多いようです。 本来、「テスト」は %1B%24B%25F%259%25H%1B%28B とエン コードされるべきところが、 %251B%2524B%2525F%25259%2525H%251B%2528B のようになっ てしまいます。v1.3.0.0 から user agent を確認して対応するようになっ ています。

日本語のファイル名に対応していますか

v1.2.0.8 以降では Win32, OS/2 ともに日本語のファイル名に対応しまて いるはずです。もし問題を見つけたら報告してください。

mknmz で Out of memory! で止まってしまい ます

大きなファイルを処理していると Out of memory! になってしまうことがあります。 この場合は mknmz の中の $FILE_SIZE_LIMIT の値を下げると解決すると思われます。 同じように、たくさんのファイルを処理していると同じように Out of memory! になってしまうかもしれません。 この場合は mknmz の中の $ON_MEMORY_MAX の値を下げると解決すると思われます。

また、v1.2.0 からはフレーズ検索用のインデックスを作成するために以 前のヴァージョンよりもメモリを多く消費します。フレーズ検索が不要な 方は mknmz に -P オプションをつけて実行してください。

CGIとして動かすとわけのわからない文字が大量に表示されるのですが

おそらくそれは CGI として実行されているのではなく、 namazu.cgi の中身がそのまま表示されているのでしょう。 CGI が実行できるようにサーヴァの設定をしてください。

Makefile の OPT_TARGET_FILE や OPT_DENY_FILE の書き方が分かりません

これは正規表現で指定しています。 プログラミング Perl 改訂版 などを参照してください。

SunOS4.x + Perl5.003 でインデックスを作ると何か変なんですが

SunOS4.x の memcmp(3) の実装により、 Perl で EUC の日本語文字列を比較する際に unsigned/signed の扱いで問題が発生していたようです。 この問題は最近の Perl では解決しているそうなので、新しいものを使ってください。 また、一応 v1.1.1.3 以降の Namazu でも対処するためのコードを入れています。

mknmz.pl 中に $MHONARC_INDEX_FILE という指定があったと思いましたが

v1.1.1 からは MHonArc v2.1.0 以降ののインデックスファイルを自動認識して除外するようにしました。 ヘッダを照合して確認しているので古い MHonArc で作ったアーカイヴについては対応していません。

MHonArc の作成するインデックス (maillist.html や threads.html) がスキップされないのですが

MHonArc の v2.1.0 より前のヴァージョンのものは自動判別がききません。 MHonArc のヴァージョンをあげることをお勧めします。

MHonArcのサイト
http://www.oac.uci.edu/indiv/ehood/mhonarc.html

インデックスの名前を変えたいのですが

Namazu はひとつのディレクトリにひとつだけしかインデックスを置けないという仕様になっています。 ですから、 NMZ.* の名前を変更してもあまりメリットはないと思われます。

インデックス作成の効率は?

加藤@NTT DATAさんの調査

備考: perl,kakasi,nkf はパッケージにあったものを使っています. 即ち,Linux 側の場合,Plamo-1.0 にあったそのまんまのモノを, Windows95 側の場合,広瀬さんのページにあったバイナリーそのまんまのモノ を使っています.実は,意外と,コンパイラの性能が速度要因の重要な因子に なるので,その点は注意が必要です (それで泣かされたことが何回あったか

Plamo Linux 1.0
1回目: 438 sec.
2回目: 460 sec.
Windows 95 4.00.950B
1回目: 574 sec.
2回目: 550 sec.

広瀬@NECエンジニアリングさんの調査

FreeBSD 2.2.6-RELEASE
1回目: 392 sec.
2回目: 391 sec.
Windows 98
1回目: 457 sec.
2回目: 454 sec.

インデックスのサイズを小さくしたい

mknmz実行時に

といったオプションをつけてください。サイズ、作成時間ともに半分 以下程度に短縮するものと思われます。

wget で取得してきたファイルのパス名に '%7E' が含まれて困ります

Namazuはインデックス作成時に、パス名に含まれる記号類を URL風に ' %xx' としてエンコードして記録します。ゆえにパス名に含まれる '%7Efoo' は '%257Efoo' のように '%' の部分が '%25' に変換され、嬉しくない結果となります。

このような場合は mknmz 実行時に -U オプションをつけてパス名のエン コードを行わないようにします。 '%7E' はそのまま '%7E' として記録さ れます。

Use of uninitialized value at /usr/local/bin/mknmz line xxxx なんてメッセージが表示されます

これは Perl の出力するウォーニングです。特に実害はないと思います。 mknmz の一行目から '-w' を取り除くと消えるはずです。Perlのヴァージョ ンによってウォーニングが出たりでなかったりします。

Windows 95/NT 関連

mknmz の実行中に「コマンドまたはファイル名が違います」と言われます

nkf32と kakasi がパスの通ったところに置かれているか確認してください。

MS-Wordの文書をインデックスしたいのですが

Word 98の文書なら MSWordView, MSWord 8 converter for unixで HTMLに変換して扱えるようです。変 換結果は UTF-8 のエンコーディングで出力されるそうなのでtcs を用いると良いでしょう。

日本語処理関連

KAKASI と Chasen のどちらを使うべきでしょう

辞書のメンテナンスが容易なこと、動作が軽いことを考えると KAKASI の方が扱いやすいように思われます。 もちろん本格的な日本語の処理を行うには ChaSen の方が向いています。

KAKASI の辞書を拡張したいのですが

KAKASI付属の kakasidict (テキストファイル) に単語を追加して KAKASI の make 時に一緒に作られた mkkanwa というプログラムを使って バイナリ形式の辞書に変 換します。 出来上がった辞書は kanwadict という名前で /usr/local/lib/kakasi あたりにコピーすればよいでしょう。

フリーのかな漢字変換用辞書については馬場肇@京大さんによる Freely available dictionaries for kana-kanji conversion に情報がまとまっています。

字書? 辞書?

一時期、ドキュメントの中で (かな漢字変換用の) 「字書」という表記を使っていましたが、一般的な「辞書」に戻しました。 深い理由はないです。

MHonArc で処理するときにヘッダの MIME encode をデコードさせたいのですが

MHonArc 2.2.0に眞柄さんが作成された日本語化パッチをあててください。

あるいは MHonArc 側で nkf を通す方法もありますが、上記の MHonArc の日本語化パッチを適用することをお勧めします。

文責


email: satoru-t@is.aist-nara.ac.jp
Namazu のページ: http://openlab.ring.gr.jp/namazu/

satoru-t@is.aist-nara.ac.jp