hns - 日記自動生成システム - Version 2.19.9

先月 2003年08月 来月
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
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/1
PHRASE 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年03月10日
停電 (瞬電)
2024年03月03日
the second try on bare-metal
useradd
2024年02月29日
opendkim and senmail
2024年01月24日
chat/iam 0.0.8
2024年01月21日
uselocale vs setlocale (textproc/R-readxl)
以上、1 日分です。
タイトル一覧
カテゴリ分類
Powered by hns-2.19.9, HyperNikkiSystem Project

Count.cgi (since 2000/02/05)