発見!? 改訂 Namazuシステムの構築と活用2006年09月02日 02時39分59秒

「改訂 Namazuシステムの構築と活用」を発注可能なところを発見しました。

http://www.jbook.co.jp/p/p.aspx/2276979/s

ただし、販売中とはなっていますが、取り寄せの結果、品切れとなる可能性もあるようです。 興味のある方はダメもとで注文してみてはいかがでしょう。

Namazu 2.0.17 のリリース準備2006年09月02日 04時10分59秒

HEAD は、まだまだ使える段階ではないのですが、(これから修正していくとして) development-2-1 移行作業については一段落しました。

そこで、次は Namazu 2.0.17 のリリース(10/29予定?)の準備をしようかと思います。 2.0.16 リリース以降に大きな修正はありませんが、意外にいろいろ修正しています。

主な修正

  • filter/win32/olevisio.pl Visio 2000 対応
  • Windows版で強調表示できない場合があるバグを修正
  • filter/mailnews.pl base64/qcode でエンコーディングされた日本語テキストに対応(シングルパート/マルチパート)
  • filter/mailnews.pl マルチパートの途中で切れているメールのための対策
  • filter/pdf.pl mknmz --debug オプションでプロテクト付きファイルと誤認されるバグを修正
  • テンプレートをカスタマイズした場合にバッファオーバーフローを起こす可能性があったのを修正
  • 部分一致検索の場合にも、強調表示するように修正
  • filter/taro56.pl 罫線処理のデバッグ。無限ループに入るバグを修正
  • gcnmz, nmzmergeのログの形式をmknmzに合わせる
  • フィールド検索で正規表現検索を無効にできないバグを修正(REGEX_SEARCH)
  • 「"」「/」で検索すると強調表示で無限ループに入るバグを修正

Re: Namazu 2.0.17 のリリース準備2006年09月09日 16時07分37秒

> MeCab連動がこけてしまっていて、kakasiに戻して使い続けているけれど、
> Namazu 2.0.17 のリリース準備(Namazuの開発日記)によれば、次版が出るみたい。
> これも直るといいなと思うのだけれど。

これは Namazu の問題ではありません。

MeCab をバージョンアップしたら、Perl モジュールも対応するバージョンのものにバージョンアップする必要があります。(それは MeCab 側の仕様)

MeCab の Perl モジュールをインストールした MeCab に対応するものにバージョンアップすれば、MeCab も Namazu から使えるようになります。

Namazu for Windows 2.0.16 ( アーカイブ002 ) を公開2006年09月09日 21時52分34秒

Namazu for Windows 2.0.16 (アーカイブ002) を公開します。

Namazu 2.0.16 を Windows で使用するための、コンパイル済みのバイナリをまとめたアーカイブです。

http://www.akaneiro.jp/public/nmz2.0.16.002-win32.zip
http://www.akaneiro.jp/public/nmz2.0.16.002-win32.zip.sig
http://www.akaneiro.jp/public/nmz2.0.16.002-win32.zip.md5
(md5sum: fac3f77f5241ee40971056c84da30f65)
http://www.akaneiro.jp/public/nmz2.0.16.002-win32.zip.sha1
(sha1sum: 09ca701a27b95f673f8221295fc4c15207fc66d7)

本アーカイブにはインストーラは含まれませんので、手動でインストールする 必要があります。

動作環境は

  • ActivePerl 800番台
  • インストール先は C:\namazu

という制限が付きます。

また、Web サーバから PPM ファイルをインストールする必要がありますので、インストール時にインターネットに接続する必要があります。

備考:

  • nmz2.0.16.001-win32.zip との変更点は、ドキュメントに Proxy 関係の記述を追加した程度です。nmz2.0.16.001-win32.zip をインストールされている方は、特に差し替えの必要はありません。
  • アーカイブに含まれるプログラムは変更していませんので、Namazu 2.0.16 リリース後に判明したバグについては一切修正されていません。
  • 新規に Namazu 2.0.16 をインストールする場合には nmz2.0.16.002-win32.zip をご利用ください。
  • Search-Namazu も ppm-inst でインストールされるようになりました。
  • 品質に違いはありませんが、アルファ版という表記をなくしました。これは意味を理解せずにこのバージョンを嫌い、2.0.14 をインストールしようとする人が多いための措置です。現在、Namazu は 2.0.16 以外のバージョンは使用すべきでないことに注意してください。

ISO-2022-JP 出力用の処理を削除2006年09月11日 23時51分12秒

歪な ISO-2022-JP 出力用の特別な処理を削除しました。(HEAD)

内部処理は全て UTF-8 で行い、最後にまとめて外部コードに変換して出力するようにプログラム全体を書き換えるための準備です。

そのためにはいろいろな関数をバッファリングしないといけないのですが、今後随時書き換えていきたいと思います。

Namazu for Windows 2.0.16 ダウンロード数(5)2006年09月12日 01時57分02秒

アクセスログの保存期間が3ヶ月しかないので、前回以降の集計です。

8/9~9/11(本日)までの nmz2.0.16.001-win32.zip, nmz2.0.16.002-win32.zipのダウンロード数は、約650 でした。

NKF, File-MMagic, Text-Kakasi の PPM のダウンロード数はそれぞれ約 210 でした。

Search-Namazu の PPM のダウンロード数は 10、MeCab の PPM のダウンロード数は 27 でした。

ppm, PPM のセッション数は合わせて約 250 でした。(210 + 10 + 27 = 247 とほぼ一致)

このことから、この期間のインターネットからの Namazu 2.0.16 for Windows ののべインストール数は約 210 台ということでしょう。

nmz2.0.16.001-win32.zip のダウンロード数と PPM のダウンロード数のひらきが6倍ほどに拡大しています。

なお、前回の調査と合わせると、nmz2.0.16.001-win32.zip ののべダウンロード数は 4,350。インターネットからの Namazu 2.0.16 for Windows ののべインストール数は 1,200~1,400 ぐらいのようです。

フレーズ検索で ERR_TOO_MUCH_* の場合にコアダンプする不具合の修正2006年09月15日 12時15分47秒

フレーズ検索の際に do_phrase_search の中から cmp_phrase_hash を呼び出すのですが、この第二引数 val が TOO_MUCH_* の場合に val.data は free 済みとなっています。
にもかかわらず、cmp_phrase_hash で使っているという不具合を修正しました。

同時に念のため val.data を free() した後に NULL を設定するようにしました。
しかし、nmz_free_hlist() がポインタ渡しではなく、値渡しになっているので面倒でした。非効率ですし、ポインタ渡しにしようかとも思いましたが、Search::Namazu とかからも呼び出している関数なので、とりあえず現状維持です。
HEAD ではこのような値渡しの引数をポインタ渡しにしたいものです。

検索速度の改善他2006年09月20日 02時33分49秒

以下の修正を行いました。

1. 様々な箇所で、nmz_free_hlist() によるメモリ解放を行いました。
2. nmzchkw.pl を contrib に入れました。
3. nmz/hlist.c(nmz_do_date_processing) パフォーマンスの向上をはかりました。

3 については、過去において gcnmz をあまり実行していない場合に、検索の速度が落ちる事例が何件が報告されていました。

調べてみると、nmz_do_date_processing ではヒットした文書の date をチェックし、削除文書の場合はヒットリストの配列を詰める(コピー)という処理がありました。この処理が二重ループとなっており、最悪のケースでは(n - 1)! 回コピーします。
これを最悪のケースでも n - 1 回のコピーとなるよう一重ループで処理するようにしました。

デフォルトでは MaxHit が 10000 ですから、n の最大値は 10000 であり、条件がそろえばかなりの回数コピーを行うことなっていました。

gcnmz を実行しないで mknmz を繰り返していると、文書の更新率が高い場合には、削除文書が全体を占める割合が高くなります。
その場合にはかなりの回数コピーを行う可能性がありました。

今回の修正で、「gcnmz をあまり実行していない場合に、検索の速度が落ちる」という症状が全て改善するかどうかはわかりませんが、かなり有効だろうと思います。
興味のある方は試してみてください。