namazu-ml(ring)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Addtional score.
まえだです。
すぎうらさん>
> 細かい話は抜きにして、namazuをもっと便利に!という話ならこういったジワ
> ジワと進化していく重みづけは大賛成ですが、とりあえずjp.FreeBSD.orgのと
> この検索ページを便利にというのであれば、JavaHouseのようにトピックとして
> 別項に集めていくという方法もいいんじゃないかと思います。
FreeBSD の場合に限っていってしまうと、QandA というものがあり
(<http://www.jp.freebsd.org/QandA/A>)ますので、こちらがそれ
に該当するのでしょう。
また、別プロジェクトで www-links というプロジェクトがあるの
ですが(こちらは発足したてで、まだ 公開できる web はありませ
ん)、こちらも、ユーザ投稿型になる予定です。
どちらにしても、付加的なスコアがあれば、管理者が意図的にある
記事のスコアをあげたり下げたりということができるので、私とし
てはnamazuで欲しい機能の一つです。
一応、そのパッチをつけておきます。1.3.0.6用です。大したこと
はやってなくって、NMZ.as があれば、それをスコアとして加算す
るというだけです。
このMLにこういうパッチを流しても良いんですよね? namazu-devの
方が良いのでしょうか?
--- namazu.h.orig Mon Mar 15 17:44:53 1999
+++ namazu.h Wed May 12 08:56:11 1999
@@ -102,7 +102,7 @@
extern uchar DEFAULT_DIR[];
extern uchar *DbNames[];
extern uchar Lang[];
-extern FILE *Flist, *FlistIndex, *Index, *IndexIndex, *Hash;
+extern FILE *Flist, *FlistIndex, *Index, *IndexIndex, *Hash, *AdditionalScore;
extern uchar BASE_URL[];
extern uchar URL_REPLACE_FROM[];
@@ -130,6 +130,7 @@
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 Wed May 12 09:01:23 1999
@@ -701,6 +701,7 @@
if (Hash == NULL) {
return 1;
}
+ AdditionalScore = fopen(ASCORE, "rb");
return 0;
}
@@ -710,6 +711,8 @@
fclose(Index);
fclose(IndexIndex);
fclose(Hash);
+ if (AdditionalScore != NULL)
+ fclose(AdditionalScore);
}
@@ -859,6 +862,18 @@
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) {
+ if (freadx(&as, sizeof(int), 1, AdditionalScore)
+ != sizeof(int))
+ hlist.scr[i] += as;
+ }
+ }
+ }
+
if (hlist.n) /* if hit */
set_did_hlist(hlist, n);
if (!HitCountOnly && !MoreShortFormat && !NoReference) {
--- values.c.orig Mon Mar 15 17:44:53 1999
+++ values.c Wed May 12 08:56:11 1999
@@ -68,6 +68,7 @@
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,5 +108,5 @@
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;
+FILE *Flist, *FlistIndex, *Index, *IndexIndex, *Hash, *Phrase, *PhraseIndex, *AdditionalScore;
--- namazu.h.orig Mon Mar 15 17:44:53 1999
+++ namazu.h Wed May 12 08:56:11 1999
@@ -102,7 +102,7 @@
extern uchar DEFAULT_DIR[];
extern uchar *DbNames[];
extern uchar Lang[];
-extern FILE *Flist, *FlistIndex, *Index, *IndexIndex, *Hash;
+extern FILE *Flist, *FlistIndex, *Index, *IndexIndex, *Hash, *AdditionalScore;
extern uchar BASE_URL[];
extern uchar URL_REPLACE_FROM[];
@@ -130,6 +130,7 @@
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 Wed May 12 20:13:16 1999
@@ -701,6 +701,7 @@
if (Hash == NULL) {
return 1;
}
+ AdditionalScore = fopen(ASCORE, "rb");
return 0;
}
@@ -710,6 +711,8 @@
fclose(Index);
fclose(IndexIndex);
fclose(Hash);
+ if (AdditionalScore != NULL)
+ fclose(AdditionalScore);
}
@@ -859,6 +862,18 @@
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) != sizeof(int)) {
+ 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) {
--- values.c.orig Mon Mar 15 17:44:53 1999
+++ values.c Wed May 12 08:56:11 1999
@@ -68,6 +68,7 @@
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,5 +108,5 @@
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;
+FILE *Flist, *FlistIndex, *Index, *IndexIndex, *Hash, *Phrase, *PhraseIndex, *AdditionalScore;