Don't exit in dir_open.
[idzebra-moved-to-github.git] / index / rankstatic.c
index 2b8fb20..999aa2b 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: rankstatic.c,v 1.2 2005-08-19 10:48:36 adam Exp $
+/* $Id: rankstatic.c,v 1.4 2006-03-30 09:52:15 adam Exp $
    Copyright (C) 1995-2005
    Index Data ApS
 
@@ -83,8 +83,30 @@ static void *begin (struct zebra_register *reg,
     si->no_rank_entries = 0;
     for (i = 0; i < numterms; i++)
     {
+       struct ord_list *ol = terms[i]->ol;
+
         yaz_log(log_level, "i=%d flags=%s '%s'", i, 
                 terms[i]->flags, terms[i]->name );
+
+       for (; ol; ol = ol->next)
+       {
+           int index_type = 0;
+           const char *db = 0;
+           const char *string_index = 0;
+           int set = -1;
+           int use = -1;
+
+           zebraExplain_lookup_ord(reg->zei,
+                                   ol->ord, &index_type, &db, &set, &use,
+                                   &string_index);
+
+           if (string_index)
+               yaz_log(log_level, " ord=%d index_type=%c db=%s str-index=%s",
+                   ol->ord, index_type, db, string_index);
+           else
+               yaz_log(log_level, " ord=%d index_type=%c db=%s set=%d use=%d",
+                   ol->ord, index_type, db, set, use);
+       }
        if (!strncmp (terms[i]->flags, "rank,", 5)) 
            (si->no_rank_entries)++;
     }
@@ -116,13 +138,15 @@ static void add (void *set_handle, int seqno, TERMID term)
  *  score should be between 0 and 1000. If score cannot be obtained
  *  -1 should be returned.
  */
-static int calc (void *set_handle, zint sysno, zint staticrank)
+static int calc (void *set_handle, zint sysno, zint staticrank,
+                int *stop_flag)
 {
     struct rank_set_info *si = (struct rank_set_info *) set_handle;
 
     if (!si->no_rank_entries)
        return -1;   /* ranking not enabled for any terms */
 
+    /* if we set *stop_flag = 1, we stop processing (of result set list) */
     /* staticrank = 0 is highest, MAXINT lowest */
     return INT_MAX - staticrank;  /* but score is reverse (logical) */
 }