Add chop arg to get_data (may break Olegs last patch)
[idzebra-moved-to-github.git] / index / zsets.c
index 57b7e4b..009feda 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: zsets.c,v 1.48 2004-06-07 22:09:32 adam Exp $
+/* $Id: zsets.c,v 1.49.2.1 2004-11-15 21:53:08 adam Exp $
    Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002,2003,2004
    Index Data Aps
 
@@ -511,8 +511,8 @@ void resultSetInsertSort (ZebraHandle zh, ZebraSet sset,
     new_entry->score = -1;
 }
 
-void resultSetInsertRank (ZebraHandle zh, struct zset_sort_info *sort_info,
-                         int sysno, int score, int relation)
+void resultSetInsertRank(ZebraHandle zh, struct zset_sort_info *sort_info,
+                        int sysno, int score, int relation)
 {
     struct zset_sort_entry *new_entry = NULL;
     int i, j;
@@ -603,6 +603,7 @@ void resultSetSortSingle (ZebraHandle zh, NMEM nmem,
                          ZebraSet sset, RSET rset,
                          Z_SortKeySpecList *sort_sequence, int *sort_status)
 {
+    int kno = 0;
     int i, psysno = 0;
     struct it_key key;
     struct sortKeyInfo sort_criteria[3];
@@ -610,7 +611,6 @@ void resultSetSortSingle (ZebraHandle zh, NMEM nmem,
     int term_index;
     RSFD rfd;
 
-    yaz_log (LOG_LOG, "resultSetSortSingle start");
     sset->sort_info->num_entries = 0;
 
     sset->hits = 0;
@@ -675,6 +675,7 @@ void resultSetSortSingle (ZebraHandle zh, NMEM nmem,
     rfd = rset_open (rset, RSETF_READ);
     while (rset_read (rset, rfd, &key, &term_index))
     {
+       kno++;
         if (key.sysno != psysno)
         {
            (sset->hits)++;
@@ -685,6 +686,7 @@ void resultSetSortSingle (ZebraHandle zh, NMEM nmem,
     }
     rset_close (rset, rfd);
 
+    yaz_log (LOG_LOG, "%d keys, %d sysnos, sort", kno, sset->hits);
     for (i = 0; i < rset->no_rset_terms; i++)
        yaz_log (LOG_LOG, "term=\"%s\" nn=%d type=%s count=%d",
                  rset->rset_terms[i]->name,
@@ -693,7 +695,6 @@ void resultSetSortSingle (ZebraHandle zh, NMEM nmem,
                  rset->rset_terms[i]->count);
 
     *sort_status = Z_SortResponse_success;
-    yaz_log (LOG_LOG, "resultSetSortSingle end");
 }
 
 RSET resultSetRef (ZebraHandle zh, const char *resultSetId)
@@ -714,15 +715,19 @@ void resultSetRank (ZebraHandle zh, ZebraSet zebraSet, RSET rset)
     ZebraRankClass rank_class;
     struct rank_control *rc;
     struct zset_sort_info *sort_info;
+    const char *rank_handler_name = res_get_def(zh->res, "rank", "rank-1");
 
     sort_info = zebraSet->sort_info;
     sort_info->num_entries = 0;
     zebraSet->hits = 0;
     rfd = rset_open (rset, RSETF_READ);
 
-    yaz_log (LOG_LOG, "resultSetRank");
-
-    rank_class = zebraRankLookup (zh, res_get_def(zh->res, "rank", "rank-1"));
+    rank_class = zebraRankLookup (zh, rank_handler_name);
+    if (!rank_class)
+    {
+        yaz_log (LOG_WARN, "No such rank handler: %s", rank_handler_name);
+        return;
+    }
     rc = rank_class->control;
 
     if (rset_read (rset, rfd, &key, &term_index))
@@ -752,6 +757,7 @@ void resultSetRank (ZebraHandle zh, ZebraSet zebraSet, RSET rset)
     }
     rset_close (rset, rfd);
 
+    yaz_log (LOG_LOG, "%d keys, %d sysnos, rank", kno, zebraSet->hits);
     for (i = 0; i < rset->no_rset_terms; i++)
        yaz_log (LOG_LOG, "term=\"%s\" nn=%d type=%s count=%d",
                  rset->rset_terms[i]->name,
@@ -759,7 +765,6 @@ void resultSetRank (ZebraHandle zh, ZebraSet zebraSet, RSET rset)
                  rset->rset_terms[i]->flags,
                  rset->rset_terms[i]->count);
     
-    yaz_log (LOG_LOG, "%d keys, %d distinct sysnos", kno, zebraSet->hits);
 }
 
 ZebraRankClass zebraRankLookup (ZebraHandle zh, const char *name)