X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=src%2Flogic.c;h=2ee120341b2f034426f7d7b97aaad8d72e5794b1;hb=5c017d34db6ea43ee6a95b8c462b9b824c26fbb8;hp=302b6b540258c63b525d2826b3274b79582e11fb;hpb=42ce8026de227450362900372de9611bc21b9ddb;p=pazpar2-moved-to-github.git diff --git a/src/logic.c b/src/logic.c index 302b6b5..2ee1203 100644 --- a/src/logic.c +++ b/src/logic.c @@ -77,8 +77,7 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA struct parameters global_parameters = { 0, // dump_records - 0, // debug_mode - 100, + 0 // debug_mode }; static void log_xml_doc(xmlDoc *doc) @@ -146,8 +145,7 @@ static void add_facet(struct session *s, const char *type, const char *value) s->termlists[i].name = nmem_strdup(s->nmem, type); s->termlists[i].termlist - = termlist_create(s->nmem, s->expected_maxrecs, - TERMLIST_HIGH_SCORE); + = termlist_create(s->nmem, TERMLIST_HIGH_SCORE); s->num_termlists = i + 1; } termlist_insert(s->termlists[i].termlist, value); @@ -472,7 +470,9 @@ static struct database_criterion *parse_filter(NMEM m, const char *buf) } enum pazpar2_error_code search(struct session *se, - const char *query, const char *filter, + const char *query, + const char *maxrecs, + const char *filter, const char **addinfo) { int live_channels = 0; @@ -493,15 +493,15 @@ enum pazpar2_error_code search(struct session *se, live_channels = select_targets(se, criteria); if (live_channels) { - int maxrecs = live_channels * global_parameters.toget; // This is buggy!!! - se->reclist = reclist_create(se->nmem, maxrecs); - se->expected_maxrecs = maxrecs; + se->reclist = reclist_create(se->nmem); } else return PAZPAR2_NO_TARGETS; for (cl = se->clients; cl; cl = client_next_in_session(cl)) { + if (maxrecs) + client_set_maxrecs(cl, atoi(maxrecs)); if (prepare_session_database(se, client_get_database(cl)) < 0) continue; // Parse query for target @@ -663,7 +663,6 @@ struct session *new_session(NMEM nmem, struct conf_service *service) session->num_termlists = 0; session->reclist = 0; session->clients = 0; - session->expected_maxrecs = 0; session->session_nmem = nmem; session->nmem = nmem_create(); session->wrbuf = wrbuf_alloc(); @@ -779,7 +778,7 @@ struct record_cluster **show(struct session *s, struct reclist_sortparms *sp, } reclist_sort(s->reclist, sp); - *total = s->reclist->num_records; + *total = reclist_get_num_records(s->reclist); *sumhits = s->total_hits; for (i = 0; i < start; i++) @@ -1094,15 +1093,15 @@ struct record *ingest_record(struct client *cl, const char *rec, service, record, (char *) mergekey_norm, &se->total_merged); - if (global_parameters.dump_records) - yaz_log(YLOG_LOG, "Cluster id %s from %s (#%d)", cluster->recid, - sdb->database->url, record_no); if (!cluster) { /* no room for record */ xmlFreeDoc(xdoc); return 0; } + if (global_parameters.dump_records) + yaz_log(YLOG_LOG, "Cluster id %s from %s (#%d)", cluster->recid, + sdb->database->url, record_no); relevance_newrec(se->relevance, cluster); // now parsing XML record and adding data to cluster or record metadata