- resultSetInsertRank (zh, sort_info, psysno, score, 'A');
- (zebraSet->hits)++;
- psysno = key.sysno;
- }
- (*rc->add) (handle, key.seqno, term_index);
- }
- while (rset_read (rset, rfd, &key, &term_index));
- score = (*rc->calc) (handle, psysno);
- resultSetInsertRank (zh, sort_info, psysno, score, 'A');
- (*rc->end) (zh->reg, handle);
+ resultSetInsertRank (zh, sort_info, psysno, score, 'A');
+ (zebraSet->hits)++;
+ psysno = this_sys;
+ }
+ (*rc->add) (handle, CAST_ZINT_TO_INT(seqno), termid);
+
+ if ((est==-2) && (zebraSet->hits==esthits))
+ { /* time to estimate the hits */
+ rset_pos(rfd,&cur,&tot);
+ if (tot>0) {
+ ratio = cur/tot;
+ est = (zint)(0.5+zebraSet->hits/ratio);
+ yaz_log(log_level_searchhits, "Estimating hits (%s) "
+ "%0.1f->" ZINT_FORMAT
+ "; %0.1f->" ZINT_FORMAT,
+ rset->control->desc,
+ cur, zebraSet->hits,
+ tot, est);
+ i = 0; /* round to 3 significant digits */
+ while (est>1000) {
+ est /= 10;
+ i++;
+ }
+ while (i--)
+ est *= 10;
+ zebraSet->hits = est;
+ }
+ }
+ }
+ 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);
+
+ yaz_log(log_level_searchterms, ZINT_FORMAT " keys, " ZINT_FORMAT " sysnos, rank",
+ kno, zebraSet->hits);
+ for (i = 0; i < numTerms; i++)
+ {
+ yaz_log(log_level_searchterms, "term=\"%s\" type=%s count=" ZINT_FORMAT,
+ terms[i]->name, terms[i]->flags, rset_count(terms[i]->rset));