-/* $Id: zsets.c,v 1.64 2004-10-20 14:32:28 heikki Exp $
+/* $Id: zsets.c,v 1.67 2004-10-22 10:58:28 heikki Exp $
Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002,2003,2004
Index Data Aps
zebraSet->locked = 1;
zebraSet->rpn = 0;
zebraSet->nmem = m;
- zebraSet->rset_nmem=nmem_create(); /* FIXME - where to free this ?? */
+ zebraSet->rset_nmem=nmem_create();
zebraSet->num_bases = num_bases;
zebraSet->basenames =
struct sortKeyInfo sort_criteria[3];
int num_criteria;
RSFD rfd;
+ TERMID termid;
yaz_log (LOG_LOG, "resultSetSortSingle start");
assert(nmem); /* compiler shut up about unused param */
}
}
rfd = rset_open (rset, RSETF_READ);
- while (rset_read (rfd, &key,0))
+ while (rset_read (rfd, &key,&termid))
/* FIXME - pass a TERMID *, and use it for something below !! */
{
zint this_sys = key.mem[0];
zint kno = 0;
struct it_key key;
RSFD rfd;
- /* int term_index; */
- int i;
+ TERMID termid;
+ TERMID *terms;
+ int i,n;
ZebraRankClass rank_class;
struct rank_control *rc;
struct zset_sort_info *sort_info;
}
rc = rank_class->control;
- if (rset_read (rfd, &key, 0))
- /* FIXME - Pass a TERMID *, and use it for something ?? */
+ if (rset_read (rfd, &key, &termid))
{
zint psysno = key.mem[0];
int score;
}
}
}
- while (rset_read (rfd, &key,0) && (est<0) );
- /* FIXME - term ?? */
+ while (rset_read (rfd, &key,&termid) && (est<0) );
score = (*rc->calc) (handle, psysno);
resultSetInsertRank (zh, sort_info, psysno, score, 'A');
(*rc->end) (zh->reg, handle);
}
rset_close (rfd);
-/*
- for (i = 0; i < rset->no_rset_terms; i++)
+ n=0;
+ rset_getterms(rset,0,0,&n);
+ terms=xmalloc( sizeof(*terms)*n);
+ i=n;
+ n=0;
+ rset_getterms(rset,terms,i,&n);
+
+
+ for (i = 0; i < n; i++)
{
if (est>0)
- rset->rset_terms[i]->count =
- est=(zint)(rset->rset_terms[i]->count/ratio);
+ terms[i]->count =
+ est=(zint)(terms[i]->count/ratio);
yaz_log (LOG_LOG, "term=\"%s\" nn=" ZINT_FORMAT
" type=%s count=" ZINT_FORMAT,
- rset->rset_terms[i]->name,
- rset->rset_terms[i]->nn,
- rset->rset_terms[i]->flags,
- rset->rset_terms[i]->count);
+ terms[i]->name,
+ terms[i]->nn,
+ terms[i]->flags,
+ terms[i]->count);
}
-*/
+ xfree(terms);
yaz_log (LOG_DEBUG, ZINT_FORMAT " keys, "ZINT_FORMAT" distinct sysnos",
kno, zebraSet->hits);
}