X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=index%2Fzvrank.c;h=88433bff7f4c2e6461a85d8556112e8241c17196;hb=f49130df276ecd0cdc157338da45ae5c46546d3a;hp=ae03f92c1c4bb24f5b01129b9be43734936ecc13;hpb=4d62b86b00d3b456eea3e7b3a21d809b3de0e5f7;p=idzebra-moved-to-github.git diff --git a/index/zvrank.c b/index/zvrank.c index ae03f92..88433bf 100644 --- a/index/zvrank.c +++ b/index/zvrank.c @@ -1,6 +1,6 @@ -/* $Id: zvrank.c,v 1.13 2004-11-04 13:09:06 heikki Exp $ - Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002,2003 - Index Data Aps +/* $Id: zvrank.c,v 1.20 2006-05-03 09:31:26 marc Exp $ + Copyright (C) 1995-2005 + Index Data ApS This file is part of the Zebra server. @@ -52,9 +52,10 @@ fernuni-hagen.de> #endif #include "index.h" +#include "rank.h" -static int log_level=0; -static int log_initialized=0; +static int log_level = 0; +static int log_initialized = 0; static double blog(double x) { /* log_2, log_e or log_10 is used, best to change it here if necessary */ @@ -342,7 +343,7 @@ static void idf_squared(void *rsi, void *dsi) { if (gocc==0) idf=0.0; else - idf=blog(num_docs/gocc); + idf=blog(CAST_ZINT_TO_DOUBLE(num_docs/gocc)); idf=idf*idf; ds->terms[i].idf=idf; } @@ -669,13 +670,13 @@ static void *zv_create (ZebraHandle zh) { xmalloc (sizeof(*ci)); if (!log_initialized) { - log_level=yaz_log_module_level("zvrank"); - log_initialized=1; + log_level = yaz_log_module_level("zvrank"); + log_initialized = 1; } yaz_log(log_level, "zv_create"); - wscheme=res_get_def(res, "zvrank.weighting-scheme", ""); - for (i=0; wscheme[i] && i < 8; i++) + wscheme= res_get_def(res, "zvrank.weighting-scheme", ""); + for (i = 0; wscheme[i] && i < 8; i++) ci->rscheme[i]=wscheme[i]; ci->rscheme[i] = '\0'; return ci; @@ -764,13 +765,13 @@ static void zv_end (struct zebra_register *reg, void *rsi) */ static void zv_add (void *rsi, int seqno, TERMID term) { RS rs=(RS)rsi; + int *ip = term->rankpriv; + int i=*ip; if (!term) { yaz_log(log_level, "zvrank zv_add seqno=%d NULL term",seqno ); return; } - int *ip = term->rankpriv; - int i=*ip; rs->rdoc->terms[i].locc++; yaz_log(log_level, "zvrank zv_add seqno=%d '%s' term_index=%d cnt=%d", seqno, term->name, i, rs->rdoc->terms[i].locc ); @@ -782,7 +783,7 @@ static void zv_add (void *rsi, int seqno, TERMID term) { * score should be between 0 and 1000. If score cannot be obtained * -1 should be returned. */ -static int zv_calc (void *rsi, zint sysno) +static int zv_calc (void *rsi, zint sysno, zint staticrank, int *stop_flag) { int i, veclen; int score=0; @@ -839,6 +840,5 @@ static struct rank_control rank_control_vsm = { zv_add, }; -struct rank_control *rankzv_class = &rank_control_vsm; +struct rank_control *rank_zv_class = &rank_control_vsm; -/* EOF */