#if YAZ_HAVE_XML2
zoom_ret ZOOM_connection_srw_send_search(ZOOM_connection c)
{
- const char *facets = 0;
int i;
int *start, *count;
ZOOM_resultset resultset = 0;
return zoom_complete;
resultset = c->tasks->u.search.resultset;
+
+ ZOOM_memcached_search(c, resultset);
+
if (!resultset->setname)
- resultset->setname = xstrdup("default");
+ resultset->setname = odr_strdup(resultset->odr, "default");
ZOOM_options_set(resultset->options, "setname", resultset->setname);
start = &c->tasks->u.search.start;
count = &c->tasks->u.search.count;
- facets = ZOOM_options_get(resultset->options, "facets");
- if (facets)
- facet_list = yaz_pqf_parse_facet_list(c->odr_out, facets);
+ if (resultset->req_facets)
+ facet_list = yaz_pqf_parse_facet_list(c->odr_out,
+ resultset->req_facets);
schema = c->tasks->u.search.schema;
if (resultset->live_set)
schema);
if (!rec)
break;
- else
- {
- ZOOM_Event event = ZOOM_Event_create(ZOOM_EVENT_RECV_RECORD);
- ZOOM_connection_put_event(c, event);
- }
}
*start += i;
*count -= i;
if (res->numberOfRecords)
{
resultset->size = *res->numberOfRecords;
-#if HAVE_LIBMEMCACHED_MEMCACHED_H
- if (c->mc_st && resultset->live_set == 0)
- {
- uint32_t flags = 0;
- memcached_return_t rc;
- time_t expiration = 36000;
- char str[40];
-
- sprintf(str, ODR_INT_PRINTF, resultset->size);
- 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 SRU 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;
if (res->suggestions)