PREFIX検索でのERR_TOO_MUCH_MATCH ― 2005年11月01日 01時02分32秒
PREFIX 検索( xxx* ) において、nmz_get_maxhit() のチェックで、ERR_TOO_MUCH_MATCH としていた部分を ERR_TOO_MUCH_HIT に変更しました。(HEAD, stable-2-0)
どうも PREFIX 検索だと ERR_TOO_MUCH_HIT は発生させずに、すべてERR_TOO_MUCH_MATCH にしようという趣旨で作られているようなのですが、やはり不自然なので、以下のように整理しました。
- ERR_TOO_MUCH_MATCH は、マッチする単語数が指定した値より多い場合。
- ERR_TOO_MUCH_HIT は、ヒットする文書数が指定した値より多い場合。
どうも PREFIX 検索だと ERR_TOO_MUCH_HIT は発生させずに、すべてERR_TOO_MUCH_MATCH にしようという趣旨で作られているようなのですが、やはり不自然なので、以下のように整理しました。
- ERR_TOO_MUCH_MATCH は、マッチする単語数が指定した値より多い場合。
- ERR_TOO_MUCH_HIT は、ヒットする文書数が指定した値より多い場合。
HEAD: query="" の時の処理 ― 2005年11月01日 01時03分48秒
query="" の時に例外扱いだった一部の処理を見直しました。
* テンプレートの <input type="text" name="query" value="ooo"> の value="ooo" を無条件で削除し、value="xxx" を追加して出力するように しました。
-> 従来は query が "" の場合は削除せず、追加もしませんでしたが、
この修正により、常に value 属性がタグに含まれるようになります。
また、重複することもありません。
* テンプレートの <option> の select 属性を無条件で削除するようにしました。
-> 従来は query が "" の場合は削除しませんでしたが、max, result, sort はデフォルト値を持っているので、削除する必要があります。
(HEAD のみ)
* テンプレートの <input type="text" name="query" value="ooo"> の value="ooo" を無条件で削除し、value="xxx" を追加して出力するように しました。
-> 従来は query が "" の場合は削除せず、追加もしませんでしたが、
この修正により、常に value 属性がタグに含まれるようになります。
また、重複することもありません。
* テンプレートの <option> の select 属性を無条件で削除するようにしました。
-> 従来は query が "" の場合は削除しませんでしたが、max, result, sort はデフォルト値を持っているので、削除する必要があります。
(HEAD のみ)
Win95Cmd.exe ― 2005年11月01日 04時29分02秒
Windows 95/98/Me 環境では、Namazu 2.0.15 からWin95Cmd.exeが必要になります。
入手先:
http://cygutils.fruitbat.org/consize/Win95Cmd.exe
nmz/nmz_regex_grep() を分割 ― 2005年11月01日 14時20分40秒
regex 検索と field 検索の両方をまとめて処理していた nmz/nmz_regex_grep() を2つに分割し、ソースを整理しました。
テキスト整形に関して ― 2005年11月01日 14時38分18秒
> 前処理として分かち書きの前にテキストを整形します。
>
> また、
> ・行頭、行末の空白文字を削除
> ・改行は日本語の単語の区切とは見なさない。(改行を連結)
> ・空白行は単語の区切とする
> というようにしました。
という上記に関係する処理ですが、実は gfilter::line_adjust_filter と思想的には同じものでした。(処理は多少異なる)
gfilter::line_adjust_filter と重複するのは何ですので、将来的にはgfilter::line_adjust_filter を廃止し、mknmz 側で処理するようにしたいと思います。
これは、
- plain テキストでは処理が通らないのはまずい
- 全てのフィルタで処理するものを各フィルタから呼び出さないといけないのは面倒
という理由によるものです。
>
> また、
> ・行頭、行末の空白文字を削除
> ・改行は日本語の単語の区切とは見なさない。(改行を連結)
> ・空白行は単語の区切とする
> というようにしました。
という上記に関係する処理ですが、実は gfilter::line_adjust_filter と思想的には同じものでした。(処理は多少異なる)
gfilter::line_adjust_filter と重複するのは何ですので、将来的にはgfilter::line_adjust_filter を廃止し、mknmz 側で処理するようにしたいと思います。
これは、
- plain テキストでは処理が通らないのはまずい
- 全てのフィルタで処理するものを各フィルタから呼び出さないといけないのは面倒
という理由によるものです。
最近のコメント