|
Namazu for hns による簡易全文検索 詳しくは 詳細指定/ヘルプを参照して下さい |
||||||||||||||||||||||||||||||||||||||||||||||||||
2003年08月20日(水) 旧暦 [n年日記]#1 [Namazu] 「8月総会内容報告」で検索
「8月総会内容報告」という字が入っているのに
"8月総会内容報告" という検索では何も見つからないな "総会内容報告" なら見つけてくれるのに、 という問題があって、 その一行だけが書いてある 1 という名前の譜を jis で作って 試しているが、"総会内容報告"だけでも見つけてくれないので 変だなぁと試している。(つまり、問題が変ってしまっているのだが) それにしても、実は namazu --debug というのは初めて使うの で、出力の見方が良く分らない。 @ mknmz:> ls 1 > cat 1 8月総会内容報告 > mkdir O > mknmz -O O 1 検索対象の譜を調べています... 1編の譜が索引作成の対象として見つかりました Use of uninitialized value in numeric eq (==) at /usr/pkg/lib/perl5/site_perl/5.6.1/File/MMagic.pm line 1002. 1/1 - .. .. /sample-test/august-meeting/1 [text/plain] 索引を書き出しています... [基本] 日付: Wed Aug 20 07:48:15 2003 追加された文書数: 1 大きさ (bytes): 22 合計の文書数: 1 追加検索語数: 6 合計検索語数: 6 わかち書き: module_kakasi -ieuc -oeuc -w 経過時間 (秒): 1 譜/秒: 1.00 系: netbsd Perl: 5.006001 Namazu: 2.0.13pre7 @ NMZ.w:> cat O/NMZ.w 1 8 月 総会 内容 報告 @ > namazu 総会内容報告 O:> namazu 総会内容報告 O 検索結果 参考一致数: { [ 総会: 1 ] [ 内容: 1 ] [ 報告: 1 ] :: 0 } 検索式に一致する文書はありませんでした。 > namazu -l 総会 O .. ../sample-test/august-meeting/1 > namazu -l 内容 O .. ../sample-test/august-meeting/1 > namazu -l 報告 O .. ../sample-test/august-meeting/1 > namazu -l '総会 内容 報告' O .. ../sample-test/august-meeting/1 > namazu -l '総会内容報告' O > namazu -l 総会内容報告 O > namazu -l \"総会内容報告\" O > @ PHRASE search になっている ?:> namazu -l --debug '総会 内容 報告' O | & egrep 'do|hash' namazu(debug): do WORD search namazu(debug): do WORD search namazu(debug): do WORD search namazu(debug): do WORD search namazu(debug): do WORD search namazu(debug): do WORD search > namazu -l --debug '総会内容報告' O | & egrep 'do|hash' namazu(debug): do WORD search namazu(debug): do PHRASE search hash:: <総会, 内容>: h:1130, val.num:0 >だとしても見つかっても良いような。 @ nmz/search.c:
この辺で分岐しているらしい
258 if (strchr(key, '\t')) { 259 nmz_debug_printf("do PHRASE search\n"); 260 return PHRASE_MODE; 261 } else { 262 nmz_debug_printf("do WORD search\n"); 263 return WORD_MODE; 264 } @ nmz/search.c:
ここから呼ばれている
1045 NmzResult 1046 nmz_do_searching(const char *key, NmzResult val) 1047 { 1048 enum nmz_searchmethod mode; 1049 char tmpkey[BUFSIZE] = ""; 1050 1051 strncpy(tmpkey, key, BUFSIZE - 1); 1052 1053 nmz_debug_printf("before nmz_strlower: [%s]", tmpkey); 1054 nmz_strlower(tmpkey); 1055 nmz_debug_printf("after nmz_strlower: [%s]", tmpkey); 1056 1057 mode = detect_search_mode(tmpkey); 1058 if (mode == ERROR_MODE) { 1059 val.stat = ERR_FATAL; 1060 return val; 1061 } 1062 1063 if (mode == WORD_MODE || mode == PHRASE_MODE) { @ nmz/wakati.c:
次のどこかで(不必要に) \t が入ってしまっている気がする。
122 int 123 nmz_wakati(char *key) 124 { 125 int i, j, key_leng, type; 126 char buf[BUFSIZE * 2] = ""; 127 128 nmz_debug_printf("wakati original: [%s].\n", key); @ --debug の出力を比較して見る:+namazu(debug): wakati original: [総会内容報告]. +namazu(debug): wakatied string: [総会 内容 報告]いや、PHRASE search でもいいはずだ。見つかれば。 @ 総会内容(×) 内容報告(○):> namazu -l '総会内容' O > namazu -l '内容報告' O .. ../sample-test/august-meeting/1PHRASE search がちょっと不正確っていうやつかな。だとすると やはり PHRASE search にならない方を追求すべきか。 ( つっこみ )
#2 [Namazu] ~/.namazurc と Wanderlust
きょうは都合があって(先に書いたことを試していたので)
~/.namazurc を別の名前に退避していた。
( emacs -q のように いつもの初期設定を無視する選択ってなかったよなぁ ?)
で、Wanderlust から検索してもどうもおかしい。 これに気が付くのに 30 分くらいかかってしまった気がする。 ~/.emacs にも、 (setq elmo-nmz-default-index-path ...) (setq elmo-nmz-index-alias-alist ..)等があって、そちらばかり気にしていたから。 しかも単に namazu -l +to:hoge index-dir とか入れると、 当然見つけてくれるので、Wanderlust の方の設定だとばかり思って.. しかし良く考えたら、 Index 行ではなくて Replace 行が必要だったということだと思う。 ( つっこみ )
|
最近の日記 2024年05月06日 ・py-setuptools (python 3.11.1) ・make release took 1 hours and 10 min ・qemu invocation for 10.99.10 2024年05月05日 ・Windows 10 version ・serial connection ・bc bench 2024年05月04日 ・Trial on 10.99.10 ・another version (later trial) to succeed 2024年04月29日 ・dkim 2024年03月10日 ・停電 (瞬電) | ||