|
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 行が必要だったということだと思う。 ( つっこみ )
|
最近の日記 2025年02月13日 ・dvipdfmx ICC profile format spec. version 4.3.0 2025年01月29日 ・ham/wsjtx 2025年01月27日 ・wip/wsjtx 5.4.2 2025年01月25日 ・ham/wsjtx 2025年01月15日 ・今更 advent calendar | ||