-/* $Id: rank1.c,v 1.11 2003-01-13 22:37:12 adam Exp $
+/* $Id: rank1.c,v 1.12 2003-01-13 22:45:22 adam Exp $
Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002
Index Data Aps
#include <unistd.h>
#endif
+#define DEBUG_RANK 0
+
#include "index.h"
struct rank_class_info {
struct rank_class_info *ci = (struct rank_class_info *)
xmalloc (sizeof(*ci));
- logf (LOG_DEBUG, "rank-1 create");
+ yaz_log (LOG_DEBUG, "rank-1 create");
return ci;
}
{
struct rank_class_info *ci = (struct rank_class_info *) class_handle;
- logf (LOG_DEBUG, "rank-1 destroy");
+ yaz_log (LOG_DEBUG, "rank-1 destroy");
xfree (ci);
}
struct rank_set_info *si = (struct rank_set_info *) xmalloc (sizeof(*si));
int i;
- logf (LOG_LOG, "rank-1 begin");
+#if DEBUG_RANK
+ yaz_log (LOG_LOG, "rank-1 begin");
+#endif
si->no_entries = rset->no_rset_terms;
si->no_rank_entries = 0;
si->entries = (struct rank_term_info *)
for (i = 0; i < si->no_entries; i++)
{
int g = rset->rset_terms[i]->nn;
+#if DEBUG_RANK
yaz_log(LOG_LOG, "i=%d flags=%s", i, rset->rset_terms[i]->flags);
+#endif
if (!strncmp (rset->rset_terms[i]->flags, "rank,", 5))
{
si->entries[i].rank_flag = 1;
si->entries[i].rank_weight = atoi (rset->rset_terms[i]->flags+5);
+#if DEBUG_RANK
yaz_log (LOG_LOG, " weight=%d", i, si->entries[i].rank_weight);
+#endif
(si->no_rank_entries)++;
}
else
si->entries[i].local_occur = 0;
si->entries[i].global_occur = g;
si->entries[i].global_inv = 32 - log2_int (g);
- logf (LOG_DEBUG, "-------- %d ------", 32 - log2_int (g));
+ yaz_log (LOG_DEBUG, "-------- %d ------", 32 - log2_int (g));
}
return si;
}
static void end (struct zebra_register *reg, void *set_handle)
{
struct rank_set_info *si = (struct rank_set_info *) set_handle;
- logf (LOG_DEBUG, "rank-1 end");
+ yaz_log (LOG_DEBUG, "rank-1 end");
xfree (si->entries);
xfree (si);
}
static void add (void *set_handle, int seqno, int term_index)
{
struct rank_set_info *si = (struct rank_set_info *) set_handle;
+#if DEBUG_RANK
yaz_log (LOG_LOG, "rank-1 add seqno=%d term_index=%d", seqno, term_index);
+#endif
si->last_pos = seqno;
si->entries[term_index].local_occur++;
}
if (!si->no_rank_entries)
return -1;
+#if DEBUG_RANK
yaz_log(LOG_LOG, "calc");
+#endif
for (i = 0; i < si->no_entries; i++)
{
+#if DEBUG_RANK
yaz_log(LOG_LOG, "i=%d rank_flag=%d lo=%d",
i, si->entries[i].rank_flag, si->entries[i].local_occur);
+#endif
if (si->entries[i].rank_flag && (lo = si->entries[i].local_occur))
score += (8+log2_int (lo)) * si->entries[i].global_inv *
si->entries[i].rank_weight;
}
divisor = si->no_rank_entries * (8+log2_int (si->last_pos/si->no_entries));
score = score / divisor;
+#if DEBUG_RANK
yaz_log (LOG_LOG, "sysno=%d score=%d", sysno, score);
+#endif
if (score > 1000)
score = 1000;
for (i = 0; i < si->no_entries; i++)
-/* $Id: zsets.c,v 1.40 2003-01-13 22:37:12 adam Exp $
+/* $Id: zsets.c,v 1.41 2003-01-13 22:45:22 adam Exp $
Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002
Index Data Aps
break;
if (s)
{
- logf (LOG_DEBUG, "updating result set %s", name);
+ yaz_log (LOG_DEBUG, "updating result set %s", name);
if (!ov || s->locked)
return NULL;
if (s->rset)
}
else
{
- logf (LOG_DEBUG, "adding result set %s", name);
+ yaz_log (LOG_DEBUG, "adding result set %s", name);
s = (ZebraSet) xmalloc (sizeof(*s));
s->next = zh->sets;
zh->sets = s;
position = positions[i];
if (position > 0 && position <= sort_info->num_entries)
{
- logf (LOG_DEBUG, "got pos=%d (sorted)", position);
+ yaz_log (LOG_DEBUG, "got pos=%d (sorted)", position);
sr[i].sysno = sort_info->entries[position-1]->sysno;
sr[i].score = sort_info->entries[position-1]->score;
}
if (position == positions[num_i])
{
sr[num_i].sysno = psysno;
- logf (LOG_DEBUG, "got pos=%d (unsorted)", position);
+ yaz_log (LOG_DEBUG, "got pos=%d (unsorted)", position);
sr[num_i].score = -1;
num_i++;
}
zh->errCode = 230;
return;
}
- logf (LOG_DEBUG, "result set sort input=%s output=%s",
+ yaz_log (LOG_DEBUG, "result set sort input=%s output=%s",
*input_setnames, output_setname);
sset = resultSetGet (zh, input_setnames[0]);
if (!sset)
int term_index;
RSFD rfd;
- logf (LOG_LOG, "resultSetSortSingle start");
+ yaz_log (LOG_LOG, "resultSetSortSingle start");
sset->sort_info->num_entries = 0;
sset->hits = 0;
switch (sk->which)
{
case Z_SortKey_sortField:
- logf (LOG_DEBUG, "Sort: key %d is of type sortField", i+1);
+ yaz_log (LOG_DEBUG, "Sort: key %d is of type sortField", i+1);
zh->errCode = 207;
return;
case Z_SortKey_elementSpec:
- logf (LOG_DEBUG, "Sort: key %d is of type elementSpec", i+1);
+ yaz_log (LOG_DEBUG, "Sort: key %d is of type elementSpec", i+1);
zh->errCode = 207;
return;
case Z_SortKey_sortAttributes:
- logf (LOG_DEBUG, "Sort: key %d is of type sortAttributes", i+1);
+ yaz_log (LOG_DEBUG, "Sort: key %d is of type sortAttributes", i+1);
sort_criteria[i].attrUse =
zebra_maps_sort (zh->reg->zebra_maps,
sk->u.sortAttributes,
&sort_criteria[i].numerical);
- logf (LOG_DEBUG, "use value = %d", sort_criteria[i].attrUse);
+ yaz_log (LOG_DEBUG, "use value = %d", sort_criteria[i].attrUse);
if (sort_criteria[i].attrUse == -1)
{
zh->errCode = 116;
rset->rset_terms[i]->count);
*sort_status = Z_SortStatus_success;
- logf (LOG_LOG, "resultSetSortSingle end");
+ yaz_log (LOG_LOG, "resultSetSortSingle end");
}
RSET resultSetRef (ZebraHandle zh, Z_ResultSetId *resultSetId)
do
{
kno++;
- yaz_log(LOG_LOG, "sysno=%d seqno=%d idx=%d", key.sysno, key.seqno,
- term_index);
if (key.sysno != psysno)
{
score = (*rc->calc) (handle, psysno);