# Namazu FAQ

Last Modified: 1998-08-31

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

## 目次

- Namazu 一般
  - Namazuの解説書はありますか
  - 他の検索エンジンとはどう違うのですか
  - Windows 95/NT で使いたいのですが
  - OS/2 で使いたいのですが
  - バグみたいなのですが
  - こんな機能があったら嬉しいのですが
  - 商用目的のサイトで利用したいのですが
  - Namazu はなぜフリーソフトウェアなのですか
  - Namazu の名前の由来は何ですか
- 初歩的な質問
  - 動きません、教えてください (質問の仕方)
  - 超初心者です、何もわかりませんが使いたい のです [New!]
  - FreeBSDで mknmzが動きません
  - KAKASI の make ができません
- Namazu 動作関連
  - インデックス作成の最中に変な メッセージが何度も表示されます [New!]
  - ChaSen v1.51 を使ってインデッ クスを作成すると途中で停まってしまいます [New!]
  - インデック スの更新中に検索をかけることはできますか? [New!]
  - インデックスの更新中に mknmz を強制終了させるとインデックスは壊れますか? [New!]
  - .namazurc を見えないように Web サーヴァを設定したいのですが [New!]
  - インデックス作成の最中にどういうわけかフロッピーディスクドライ ヴが動き出して困ります [New!]
  - 複数のディレクトリをインデックス したい
  - configure が途中で終了してしまう
  - CGIとして動きません
  - どの程度の規模のインデックスが作れます か? [New!]
  - mknmz で Not enough space! で止まって しまいます
  - Mac OS 8.5 の Sherlock で文字化けしてし まう
  - 検索されるべき文書が結果に現われない
  - 特定の文書でインデックス処理が止まってし まう
  - mknmz を実行すると sh: no: command not found と表示されてうまく動きません
  - Macintosh の Internet Explorer 4.01 で日本 語で検索をかけると結果が化けておかしくなります
  - 日本語のファイル名に対応しています か
  - mknmz で Out of memory! で止まってし まいます
  - CGIとして動かすとわけのわからない文字が大量に表示されるのですが
  - Makefile の OPT_TARGET_FILE や OPT_DENY_FILE の書き方が分かりません
  - SunOS4.x + Perl5.003 でインデックスを作ると何か変なんですが
  - mknmz.pl 中に $MHONARC_INDEX_FILE という指定があったと思いましたが
  - MHonArc の作成するインデックス (maillist.html や threads.html) がスキップされないのですが
  - インデックスの名前を変えたいのですが
  - インデックス作成の効率は?
  - インデックスのサイズを小さくしたい
  - wget で取得してきたファイルの パス名に '%7E' が含まれて困ります
  - Use of uninitialized value at /usr/local/bin/mknmz line xxxx なんてメッセージが表示されます
- Windows 95/NT 関連
  - mknmz の実行中に「コマンドまた はファイル名が違います」と言われます
  - MS-Wordの文書をインデックスしたいのですが
- 日本語処理関連
  - KAKASI と Chasen のどちらを使うべきでしょう
  - KAKASI の辞書を拡張したいのですが
  - 字書? 辞書?
  - MHonArc で処理するときにヘッダの MIME encode をデコードさせたいのですが

## 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 をしっかり読んでください。ど うしても分からないときは

- 問題とその症状を詳しく
  エラーメッセージが出るなら一字一句そのままにしてメイルに書い てください (copy and paste すればよい)。
- お使いの OS とそのヴァージョン
  - UNIXなら
    `% uname -a` と実行してみてください
  - Windows なら
    Windows 95/98/NT のどれか? NT ならそのヴァージョンは?
- Namazu のヴァージョン (できるだけ最新版を使ってください)
  `% namazu -v` と実行してみてください
- Perl のヴァージョン
  `% perl -v` と実行してみてください
- C コンパイラの種類とヴァージョン
  gcc なら `% gcc -v` と実行してみてください
- nkf のヴァージョン
  `% nkf -v` と実行してみてください
  古い版はメイルの MIME B/Qエンコードの decode が行えません。 v1.62 が必要です。
- httpd の種類とヴァージョン (CGIとして動かすなら)
  `% telnet localhost 80<改行>`
  `HEAD / HTTP/1.0<改行>`
  `<改行>`
  のようにして調べることができます。

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

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

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

  #### 森本淳さんのお言葉

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

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

  ### FreeBSDで mknmzが動きません

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

  ### KAKASI の make ができません

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

  ## Namazu 動作関連

  ### インデックス作成の最中に変な メッセージが何度も表示されます

  Windows 上でウィルスチェッカーを常駐させていると mknmz 実行 時に

  `Error! Runtime Exception`

  というメッセージが表示されることがあるそうです。その場合には ウィルスチェッカーを停めてから mknmz を再実行してください。

  メッセージが

  `Use of uninitialized value at ...`

  というものであれば、それほど気にする必要はありません。これは、 初期化されていない変数が mknmz の動作中に用いられたことを意 味します。ほとんどの場合は問題ありませんが、バグの可能性もあ るので、メッセージをそのままの形で高林にメイルで 送ってもらえると助かります。その際は、 Namazu と Perl のヴァー ジョンを必ず明記してください。 (できれば Namazu と (安定版の) Perl は両方とも最新版を使ってもらえると助かります)

  ### ChaSen v1.51 を使ってインデッ クスを作成すると途中で停まってしまいます

  ChaSen v1.51 を用いてインデックスを作成 (mknmzを実行) すると、 特定のファイルで "Broken Pipe" といったメッセージが出力され、 終了してしまうことがあるようです。

  これはおそらく ChaSen v1.51 のバグが原因です。chasen1.51-k1.diff のパッチをあてると直るようです。

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

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

  ### インデックスの更新中に 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`

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

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

  報告のあったもののなかでは 878,914 ファイル、合計 2,167,480,108 bytes の文書を対象にしたものが最大です (現在の世界記録保持者はすぎうらし ろうさんです :-)。

          [Base]
          Date: Tue Aug 31 18:46:20 1999
          Added Files: 878,914 files
          Total Files: 878,914 files
          Size: 2,167,480,108 bytes
          Added Keywords: 7,339,687 words
          Total Keywords: 7,339,687 words
          Wakati: module_kakasi -ieuc -oeuc -w
          ARGV: '-ahu' '-F' 'B'
          Perl Version: 5.00503
          Namazu Version: 1.4.0.0-beta-8
          System: freebsd
          Time: 79874 sec.

          NMZ.f	883950234
          NMZ.fi	3515656
          NMZ.i	721295588
          NMZ.ii	29358748
          NMZ.p	428365331
          NMZ.pi	262144
          NMZ.r	33406075
          NMZ.t	3515656
          NMZ.w	153384197

  これより規模の大きいインデッ クスを作成された方はぜひご連絡ください。

  ### 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 では解決しているので、新しいもの (5.004 以降) を使ってください。 (一応 v1.1.1.3 以降の Namazu では対処するためのコードを入れ ていますが、信用しない方がよいです。 perlのヴァージョンを上 げましょう)

  ### 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さんの調査

  - 計算機: VAIO 505EX/64 (Pentium MMX 233MHz Memory 64MB)
  - データ: Namazu メイリングリストの 1-1075 の記事
  - コマンドとそのオプション： mknmz -a -h (v1.2.1.0-beta-5, KAKASI使用)

  > 備考: 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エンジニアリングさんの調査

  - 計算機: GIGABYTE GA586SGX512 + chipset: SiS5591 + cpu: AMD k6 233MHz + mem: 128MB SDRAM + scsi: TAKRAM DC-390
  - データ: Namazu メイリングリストの 1-1075 の記事
  - コマンドとそのオプション： mknmz -a -h (v1.2.1.0-beta-7, KAKASI使用)
  FreeBSD 2.2.6-RELEASE
    1回目: 392 sec.
    2回目: 391 sec.
  Windows 98
    1回目: 457 sec.
    2回目: 454 sec.

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

  mknmz実行時に

  - -u: uuencode と BinHex の部分を無視する
  - -H: 平仮名のみの単語は登録しない (ディフォルトでは登録を行う)
  - -G: 送り仮名を削除する (ディフォルトでは含める)
  - -K: 記号はすべて削除する (ディフォルトでは登録を行う)
  - -P: フレーズ検索用のインデックスを作成しない (ディフォルトでは作成する)
  - -R: 正規表現検索用のインデックスを作成しない (ディフォルトでは作成する)
  - -X: フィールド検索用のインデックスを作らない (ディフォルトでは作成する) -- v1.2.1.0 以降

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

  ### 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

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