void ZOOM_handle_facet_list(ZOOM_resultset r, Z_FacetList *fl)
{
int j;
- r->num_facets = fl->num;
+ r->num_res_facets = fl->num;
yaz_log(YLOG_DEBUG, "Facets found: %d", fl->num);
- r->facets = odr_malloc(r->odr, fl->num * sizeof(*r->facets));
+ r->res_facets = odr_malloc(r->odr, fl->num * sizeof(*r->res_facets));
r->facets_names = odr_malloc(r->odr, fl->num * sizeof(*r->facets_names));
for (j = 0; j < fl->num; j++)
{
- r->facets[j] = get_zoom_facet_field(r->odr, fl->elements[j]);
- if (!r->facets[j])
+ r->res_facets[j] = get_zoom_facet_field(r->odr, fl->elements[j]);
+ if (!r->res_facets[j])
+ {
+ r->facets_names[j] = 0;
yaz_log(YLOG_DEBUG, "Facet field missing on index %d !", j);
- r->facets_names[j] = (char *) ZOOM_facet_field_name(r->facets[j]);
+ }
+ else
+ r->facets_names[j] = (char *)
+ ZOOM_facet_field_name(r->res_facets[j]);
}
}
handle_facet_result(c, resultset, sr->additionalSearchInfo);
resultset->size = *sr->resultCount;
- resultset->live_set = 2;
-#if HAVE_LIBMEMCACHED_MEMCACHED_H
- if (c->mc_st)
- {
- uint32_t flags = 0;
- memcached_return_t rc;
- time_t expiration = 36000;
- char str[40];
-
- sprintf(str, ODR_INT_PRINTF, *sr->resultCount);
- rc = memcached_set(c->mc_st,
- wrbuf_buf(resultset->mc_key),wrbuf_len(resultset->mc_key),
- str, strlen(str), expiration, flags);
- yaz_log(YLOG_LOG, "Store Z39.50 hit count key=%s value=%s rc=%u %s",
- wrbuf_cstr(resultset->mc_key), str, (unsigned) rc,
- memcached_last_error_message(c->mc_st));
- }
-#endif
+ ZOOM_memcached_hitcount(c, resultset);
+ resultset->live_set = 2;
handle_Z3950_records(c, sr->records, 0);
}
yaz_log(c->log_details, "%p send_present start=%d count=%d",
c, *start, *count);
-#if HAVE_LIBMEMCACHED_MEMCACHED_H
- /* TODO: add sorting */
- if (c->mc_st && resultset->live_set == 0)
- {
- size_t v_len;
- uint32_t flags;
- memcached_return_t rc;
- char *v = memcached_get(c->mc_st, wrbuf_buf(resultset->mc_key),
- wrbuf_len(resultset->mc_key),
- &v_len, &flags, &rc);
- if (v)
- {
- ZOOM_Event event;
- WRBUF w = wrbuf_alloc();
-
- wrbuf_write(w, v, v_len);
- free(v);
- resultset->size = odr_atoi(wrbuf_cstr(w));
-
- yaz_log(YLOG_LOG, "For key %s got value %s",
- wrbuf_cstr(resultset->mc_key), wrbuf_cstr(w));
+ ZOOM_memcached_search(c, resultset);
- wrbuf_destroy(w);
- event = ZOOM_Event_create(ZOOM_EVENT_RECV_SEARCH);
- ZOOM_connection_put_event(c, event);
- resultset->live_set = 1;
- }
- }
-#endif
if (*start < 0 || *count < 0)
{
ZOOM_set_dset_error(c, YAZ_BIB1_PRESENT_REQUEST_OUT_OF_RANGE, "Bib-1",