X-Git-Url: http://jsfdemo.indexdata.com/?a=blobdiff_plain;f=src%2Fsession.c;h=b37b358ff4b6ee48c97f1cee426324060ced922f;hb=d7174a9e47a822c179537e8cba2e581ca0274a0b;hp=3fb79b9c9f084ad68886220187b174841defb5a7;hpb=5b9e96b0d4272562f4940736b83489a707ad81ce;p=pazpar2-moved-to-github.git diff --git a/src/session.c b/src/session.c index 3fb79b9..b37b358 100644 --- a/src/session.c +++ b/src/session.c @@ -689,6 +689,8 @@ enum pazpar2_error_code session_search(struct session *se, se->reclist = 0; se->settings_modified = 0; relevance_destroy(&se->relevance); + if (nmem_total(se->nmem)) + session_log(se, YLOG_DEBUG, "NMEN operation usage %zd", nmem_total(se->nmem)); nmem_reset(se->nmem); se->total_records = se->total_merged = 0; se->num_termlists = 0; @@ -885,6 +887,10 @@ void session_destroy(struct session *se) normalize_cache_destroy(se->normalize_cache); relevance_destroy(&se->relevance); reclist_destroy(se->reclist); + if (nmem_total(se->nmem)) + session_log(se, YLOG_DEBUG, "NMEN operation usage %zd", nmem_total(se->nmem)); + if (nmem_total(se->session_nmem)) + session_log(se, YLOG_DEBUG, "NMEN session usage %zd", nmem_total(se->session_nmem)); nmem_destroy(se->nmem); service_destroy(se->service); yaz_mutex_destroy(&se->session_mutex); @@ -1786,6 +1792,8 @@ static int ingest_to_cluster(struct client *cl, struct record_metadata *rec_md = 0; int md_field_id = -1; int sk_field_id = -1; + int rank = 0; + xmlChar *rank_str = 0; type = xmlGetProp(n, (xmlChar *) "type"); value = xmlNodeListGetString(xdoc, n->children, 1); @@ -1799,6 +1807,15 @@ static int ingest_to_cluster(struct client *cl, continue; ser_md = &service->metadata[md_field_id]; + + rank_str = xmlGetProp(n, (xmlChar *) "rank"); + if (rank_str) + { + rank = atoi((const char *) rank_str); + xmlFree(rank_str); + } + else + rank = ser_md->rank; if (ser_md->sortkey_offset >= 0) { @@ -1898,10 +1915,11 @@ static int ingest_to_cluster(struct client *cl, // ranking of _all_ fields enabled ... - if (ser_md->rank) + if (rank) + { relevance_countwords(se->relevance, cluster, - (char *) value, ser_md->rank, - ser_md->name); + (char *) value, rank, ser_md->name); + } // construct facets ... unless the client already has reported them if (ser_md->termlist && !client_has_facet(cl, (char *) type))