namazu-ml(ring)


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

Re: Addtional score.



まえだです。

わたし> 
> 一応、そのパッチをつけておきます。1.3.0.6用です。大したこと
> はやってなくって、NMZ.as があれば、それをスコアとして加算す
> るというだけです。

今 home.jp.freebsd.org に入れようと思って、見なおしてみたら、
古いものを送った上に、更に余分なパッチまでついているようで…。
大変申し訳ないです。

もう一度送り直します。いないとは思いますが、当ててしまった人
がおられたらごめんなさい。
*** namazu.h.orig	Mon Mar 15 17:44:53 1999
--- namazu.h	Thu May 13 19:23:41 1999
***************
*** 102,108 ****
  extern uchar DEFAULT_DIR[];
  extern uchar *DbNames[];
  extern uchar Lang[];
! extern FILE *Flist, *FlistIndex, *Index, *IndexIndex, *Hash;
  
  extern uchar BASE_URL[];
  extern uchar URL_REPLACE_FROM[];
--- 102,108 ----
  extern uchar DEFAULT_DIR[];
  extern uchar *DbNames[];
  extern uchar Lang[];
! extern FILE *Flist, *FlistIndex, *Index, *IndexIndex, *Hash, *AdditionalScore;
  
  extern uchar BASE_URL[];
  extern uchar URL_REPLACE_FROM[];
***************
*** 130,135 ****
--- 130,136 ----
  extern uchar WORDLIST[];
  extern uchar FIELDINFO[];
  extern uchar DATEINDEX[];
+ extern uchar ASCORE[];
  
  extern uchar PHRASE[];
  extern uchar PHRASEINDEX[];
*** search.c.orig	Mon Mar 15 17:44:53 1999
--- search.c	Thu May 13 19:40:09 1999
***************
*** 701,706 ****
--- 701,707 ----
      if (Hash == NULL) {
  	return 1;
      }
+     AdditionalScore = fopen(ASCORE, "rb");
      return 0;
  }
  
***************
*** 710,715 ****
--- 711,718 ----
      fclose(Index);
      fclose(IndexIndex);
      fclose(Hash);
+     if (AdditionalScore != NULL)
+         fclose(AdditionalScore);
  }
  
  
***************
*** 859,864 ****
--- 862,879 ----
      initialize_parser();
      hlist = expr();
  
+     if(AdditionalScore != NULL) {
+         int as, i;
+         for(i = 0; i < hlist.n; i++) {
+             if(fseek(AdditionalScore, hlist.fid[i] * sizeof(int), 0) != -1 &&
+                freadx(&as, sizeof(int), 1, AdditionalScore) != 1) { 
+                     hlist.scr[i] += as;
+                     if (hlist.scr[i] < 1)
+                         hlist.scr[i] = 1;
+             }
+         }
+     }
+     
      if (hlist.n) /* if hit */
          set_did_hlist(hlist, n);
      if (!HitCountOnly && !MoreShortFormat && !NoReference) {
***************
*** 894,899 ****
--- 909,915 ----
      pathcat(base, SLOG);
      pathcat(base, FIELDINFO);
      pathcat(base, DATEINDEX);
+     pathcat(base, ASCORE);
  }
  
  
*** values.c.orig	Mon Mar 15 17:44:53 1999
--- values.c	Thu May 13 19:24:11 1999
***************
*** 68,73 ****
--- 68,74 ----
  uchar WORDLIST[BUFSIZE] = "NMZ.w";
  uchar FIELDINFO[BUFSIZE] = "NMZ.field.";  /* followed by field name */
  uchar DATEINDEX[BUFSIZE] = "NMZ.t"; 
+ uchar ASCORE[BUFSIZE] = "NMZ.as";
  
  uchar PHRASE[BUFSIZE] = "NMZ.p";
  uchar PHRASEINDEX[BUFSIZE] = "NMZ.pi";
***************
*** 107,111 ****
  uchar KeyTable[BUFSIZE];		/* table which saving query */
  uchar *KeyItem[KEY_ITEM_MAX + 1];	/* pointers of items of query */
  uchar *DbNames[DB_MAX + 1];   /* name of databases */
! FILE *Flist, *FlistIndex, *Index, *IndexIndex, *Hash, *Phrase, *PhraseIndex;
  
--- 108,112 ----
  uchar KeyTable[BUFSIZE];		/* table which saving query */
  uchar *KeyItem[KEY_ITEM_MAX + 1];	/* pointers of items of query */
  uchar *DbNames[DB_MAX + 1];   /* name of databases */
! FILE *Flist, *FlistIndex, *Index, *IndexIndex, *Hash, *Phrase, *PhraseIndex, *AdditionalScore;