By default, no searching for loadable modules is performed unless
[idzebra-moved-to-github.git] / index / zvrank.c
index ae03f92..88433bf 100644 (file)
@@ -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 */