MaxHit, MaxMatch のデバッグ ― 2005年10月26日 12時35分26秒
削除された文書も含めた文書数で MaxHit のチェックをしていたので、これを削除された文書を含めない文書数でチェックするように修正しました。(HEAD, stable-2-0)
この修正により、一時的に単語が含まれる文書(削除分も含めて)数分のメモリを確保します。2.0.13 以降は最大でも MaxHit 分でしたが、削除分の文書も含まれるため非常に大きくなるおそれがあります。
メモリオーバーが発生するようなら gcnmz でインデックスを整理してください。
また、たまたま NMZ.w の最後の単語 で前方一致検索を行うと、MaxHit の値に関わらず、Hit しないバグを見つけましたのでこれを修正しました。
条件により [xxxx: 0] とヒット数0と表示されるバグも修正しました。
MaxMatch の方は、マッチした単語の数となりますが、NMZ.w に含まれている単語となり、この中には削除された文書にしか含まれないものもあります。
ただし、フィールド検索だけは例外で従来通り MaxHit は削除された文書を含めてのチェックとなっています。
これはいずれ修正したいと思います。
また make check で MaxHit, MaxMatch のテストが行えると良いのですが、手がまわっていません。
この修正により、一時的に単語が含まれる文書(削除分も含めて)数分のメモリを確保します。2.0.13 以降は最大でも MaxHit 分でしたが、削除分の文書も含まれるため非常に大きくなるおそれがあります。
メモリオーバーが発生するようなら gcnmz でインデックスを整理してください。
また、たまたま NMZ.w の最後の単語 で前方一致検索を行うと、MaxHit の値に関わらず、Hit しないバグを見つけましたのでこれを修正しました。
条件により [xxxx: 0] とヒット数0と表示されるバグも修正しました。
MaxMatch の方は、マッチした単語の数となりますが、NMZ.w に含まれている単語となり、この中には削除された文書にしか含まれないものもあります。
ただし、フィールド検索だけは例外で従来通り MaxHit は削除された文書を含めてのチェックとなっています。
これはいずれ修正したいと思います。
また make check で MaxHit, MaxMatch のテストが行えると良いのですが、手がまわっていません。
fseek の戻り値のチェック ― 2005年10月26日 12時38分24秒
fseek() の戻り値でエラーチェックしている箇所が -1 かどうかで判断していたので、これを 0 以外かどうかに修正しました。
(HEAD, stable-2-0)
(HEAD, stable-2-0)
「中間一致検索」および「後方一致検索」で入力データに正規表現を含めることができたバグ ― 2005年10月26日 12時40分40秒
「中間一致検索」および「後方一致検索」において、入力データに正規表現を含めることができるというバグがありましたので、これを修正しました。(HEAD, stable-2-0)
これは、namazu 内部では「正規表現検索」の他に、「中間一致検索」「後方一致検索」「フィールド指定の検索」で regex 検索が使われているためです。
例えば、 *xxxx と入力すると実際には xxxx$ というパターンで検索されます。
しかし、*(.*) と入力すると、(.*)$ というパターンで検索されてしまいます。
本来ですと、 \(\.\*\)$ というパターンで検索されるべきでした。
ところで、「フィールド指定の検索」もregex 検索なのですが、メタキャラを '\' でエスケープするので、入力データに正規表現を含めることはできません。
今回は「フィールド指定の検索」同様、「中間一致検索」と「後方一致検索」でもメタキャラを '\' でエスケープすることにしました。
こちらも、make check でテストできれば良いのですが、手がまわっていません。
これは、namazu 内部では「正規表現検索」の他に、「中間一致検索」「後方一致検索」「フィールド指定の検索」で regex 検索が使われているためです。
例えば、 *xxxx と入力すると実際には xxxx$ というパターンで検索されます。
しかし、*(.*) と入力すると、(.*)$ というパターンで検索されてしまいます。
本来ですと、 \(\.\*\)$ というパターンで検索されるべきでした。
ところで、「フィールド指定の検索」もregex 検索なのですが、メタキャラを '\' でエスケープするので、入力データに正規表現を含めることはできません。
今回は「フィールド指定の検索」同様、「中間一致検索」と「後方一致検索」でもメタキャラを '\' でエスケープすることにしました。
こちらも、make check でテストできれば良いのですが、手がまわっていません。
Re: cmd.exe /d オプション ― 2005年10月26日 13時07分40秒
syscmd で cmd.exe を実行する際に
・AutoRun 機能の無効(/d)
・コマンド拡張機能を有効(/x)
を行うようにしました。
・AutoRun 機能の無効(/d)
・コマンド拡張機能を有効(/x)
を行うようにしました。
Re:NMZ_ARCHIVEDIR 環境変数 ― 2005年10月26日 14時05分49秒
RC ファイルで ARCHIVEDIR の設定ができるようになったので、環境変数NMZ_ARCHIVEDIR は削除しました。
最近のコメント