namazu-ml(avocado)


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: hit counts - option & NMZ.slog



たかくまさお@図書館情報大です。

わざわざどうもです。

<19981207015928V.satoru@xxxxxxxxxxxxx>の記事において
satoru@xxxxxxxxxxxxxさんは書きました。

> >2. NMZ.slogのログ情報について。
> 
> 細かいことは気にしない;-)。たぶんそのうち直します。

ではとりあえずは気にしないことにします。
暇があれば、ソースを覗きたいのですが…。

> >1. namazuのオプションでのヒット数表示。
>
> ないです。わざわざ機能として取り入れるほどでもないような…。どんな
> ときに必要になります?

今、セッションベースでの検索に
Namazuを利用することを少しやってみています。
その関係で欲しいなぁ〜、とちょっと‥‥‥。:-)
済みません。自分でちょっとソースを見てみます。

# とやっていたら、いたら一応それっぽいものができたので、
# 後ろにつけておきます。
これは -c オプションでヒット件数のみの表示を行ないます。
〜ここから〜
diff -ruN ../namazu-1.3.0.0/src/hlist.c ./hlist.c
--- ../namazu-1.3.0.0/src/hlist.c	Sun Nov  1 23:34:41 1998
+++ ./hlist.c	Tue Dec  8 02:54:53 1998
@@ -502,6 +502,11 @@
     int i, j, before_did = -1;
     uchar buf[BUFSIZE];
 
+    if (HitCountOnly) {
+        printf("%d\n", hlist.n);
+        return;
+    } 
+
     if (hlist.n <= 0)
 	return;
     for (i = HListWhence; i < hlist.n; i++) {
diff -ruN ../namazu-1.3.0.0/src/namazu.c ./namazu.c
--- ../namazu-1.3.0.0/src/namazu.c	Sun Nov  1 23:34:41 1998
+++ ./namazu.c	Tue Dec  8 02:39:30 1998
@@ -121,6 +121,9 @@
                 case 'S':
                     MoreShortFormat = 1;
                     break;
+                case 'c':
+                    HitCountOnly = 1;
+                    break;
                 case 'h':
                     HtmlOutput = 1;
                     break;
diff -ruN ../namazu-1.3.0.0/src/namazu.h ./namazu.h
--- ../namazu-1.3.0.0/src/namazu.h	Sun Nov  1 23:34:41 1998
+++ ./namazu.h	Tue Dec  8 02:38:38 1998
@@ -61,6 +61,7 @@
 extern int Debug;
 extern int ShortFormat;
 extern int MoreShortFormat;
+extern int HitCountOnly;
 extern int ScoreSort;
 extern int HtmlOutput;
 extern int HidePageIndex;
diff -ruN ../namazu-1.3.0.0/src/search.c ./search.c
--- ../namazu-1.3.0.0/src/search.c	Sun Nov  1 23:34:42 1998
+++ ./search.c	Tue Dec  8 03:04:21 1998
@@ -297,7 +297,7 @@
 
 void print_hit_count (uchar *key, HLIST val)
 {
-    if (!MoreShortFormat && !NoReference) {
+    if (!HitCountOnly && !MoreShortFormat && !NoReference) {
         printf(" [ ");
         fputx(key, stdout);
         if (val.n > 0) {
@@ -443,7 +443,7 @@
         return val;
     };
         
-    if (!MoreShortFormat && !NoReference) {
+    if (!HitCountOnly && !MoreShortFormat && !NoReference) {
         printf(" { ");
     }
     while (*p == '\t') {  /* beggining tabs are skipped */
@@ -486,7 +486,7 @@
             break;
         p = q + 1;
     }
-    if (!MoreShortFormat && !NoReference) {
+    if (!HitCountOnly && !MoreShortFormat && !NoReference) {
         printf(" :: %d } ", val.n);
     }
 
@@ -837,7 +837,7 @@
 HLIST search_and_print_reference(HLIST hlist, uchar *query,
                                  uchar *query_asis, int n)
 {
-    if (!MoreShortFormat && !NoReference) {
+    if (!HitCountOnly && !MoreShortFormat && !NoReference) {
         if (DbNumber > 1) {
             if (HtmlOutput)
                 printf("<LI><STRONG>%s</STRONG>: ", get_dir_name(DbNames[n]));
@@ -866,7 +866,7 @@
 
     if (hlist.n) /* if hit */
         set_did_hlist(hlist, n);
-    if (!MoreShortFormat && !NoReference) {
+    if (!HitCountOnly && !MoreShortFormat && !NoReference) {
         if (DbNumber > 1 && KeyItem[1]) {
             printf(" [ TOTAL: %d ]", hlist.n);
         }
@@ -873,7 +873,7 @@
         printf("\n");
     }
     close_index_files();
-        
+
     if (Logging) {
         do_logging(query_asis, hlist.n);
     }
@@ -912,7 +912,7 @@
     strcpy(query_asis, query); /* save */
     split_query(query);
 
-    if (!MoreShortFormat && !NoReference) {
+    if (!HitCountOnly && !MoreShortFormat && !NoReference) {
         print_result1();
 
         if (DbNumber > 1) {
@@ -926,7 +926,7 @@
         tmp[i] = search_and_print_reference(tmp[i], query, 
                                             query_asis, i);
     }
-    if (!MoreShortFormat && !NoReference) {
+    if (!HitCountOnly && !MoreShortFormat && !NoReference) {
         if (DbNumber > 1 && HtmlOutput) {
             printf("</UL>\n");
         }
@@ -942,15 +942,17 @@
         if (ScoreSort) {
             sort_hlist(hlist, "score"); /* sort by score */
         }
-        if (!MoreShortFormat) {
+        if (!HitCountOnly && !MoreShortFormat) {
             print_result3(hlist.n);
         }
         print_result4(hlist); /* summary listing */
-        if (!MoreShortFormat) {
+        if (!HitCountOnly && !MoreShortFormat) {
             print_result5(hlist);
         }
     } else {
-        if (!MoreShortFormat) {
+        if (HitCountOnly) {
+            printf("0\n");
+        } else if (!MoreShortFormat) {
             fputx(MSG_NO_HIT, stdout);
         }
     }
diff -ruN ../namazu-1.3.0.0/src/values.c ./values.c
--- ../namazu-1.3.0.0/src/values.c	Sun Nov  1 23:34:42 1998
+++ ./values.c	Tue Dec  8 02:40:46 1998
@@ -78,6 +78,7 @@
 int Debug = 0;			/* if debug mode is on: 1 */
 int ShortFormat = 0;		/* if no display summary: 1  */
 int MoreShortFormat = 0;        /* if more short format mode: 1  */
+int HitCountOnly = 0;
 int ScoreSort = 1;		/* if sort by score: 1 */
 int HtmlOutput = 1;		/* if display as HTML: 1 */
 int HidePageIndex = 0;		/* if hide page index: 1 */
〜ここまで〜
何かの参考になる方がいましたら、幸いです。
# 勘違いしてる点がありましたら、指摘していただけると嬉しいです。:-)
--
高久 雅生  // ULIS : University of Library and Information Science
    図書館情報大学大学院 図書館情報学研究科 1 年次  石塚研究室 所属
    E-Mail  masao@xxxxxxxxxx