/* This file is part of Pazpar2.
- Copyright (C) 2006-2010 Index Data
+ Copyright (C) 2006-2011 Index Data
Pazpar2 is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free
#include <signal.h>
#include <ctype.h>
#include <assert.h>
+#include <math.h>
#include <yaz/marcdisp.h>
#include <yaz/comstack.h>
#define MAX_CHUNK 15
+#define MAX(a,b) ((a)>(b)?(a):(b))
+
// Note: Some things in this structure will eventually move to configuration
struct parameters global_parameters =
{
record,
mergekey_norm,
&se->total_merged);
+
+ const char *use_term_factor_str = session_setting_oneval(sdb, PZ_TERMLIST_TERM_FACTOR);
+ int use_term_factor = 1;
+ int term_factor = 1;
+ if (use_term_factor_str)
+ use_term_factor = atoi(use_term_factor_str);
+
+ if (use_term_factor) {
+ int maxrecs = client_get_maxrecs(cl);
+ int hits = (int) client_get_hits(cl);
+ term_factor = MAX(hits, maxrecs) / MAX(1, maxrecs);
+ assert(term_factor >= 1);
+ yaz_log(YLOG_DEBUG, "Using term factor %d ", term_factor);
+ }
+
if (!cluster)
return -1;
if (global_parameters.dump_records)
{
char year[64];
sprintf(year, "%d", rec_md->data.number.max);
- add_facet(se, (char *) type, year, 1);
+
+ add_facet(se, (char *) type, year, term_factor);
if (rec_md->data.number.max != rec_md->data.number.min)
{
sprintf(year, "%d", rec_md->data.number.min);
- add_facet(se, (char *) type, year, 1);
+ add_facet(se, (char *) type, year, term_factor);
}
}
else
- add_facet(se, (char *) type, (char *) value, 1);
+ add_facet(se, (char *) type, (char *) value, term_factor);
}
// cleaning up