X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=src%2Fzoom-sru.c;h=533c1df6de0c35bd085852a9556c612b3e960ca0;hb=a91467db0bbbaefbaf64410b657a9439104997e0;hp=ad241cd52dc20c971be5277c9dd25c953153e3db;hpb=c65e569219f8a60e2cba17ddc648a48a7b8b5096;p=yaz-moved-to-github.git diff --git a/src/zoom-sru.c b/src/zoom-sru.c index ad241cd..533c1df 100644 --- a/src/zoom-sru.c +++ b/src/zoom-sru.c @@ -145,7 +145,6 @@ zoom_ret ZOOM_connection_srw_send_scan(ZOOM_connection c) #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; @@ -163,43 +162,16 @@ zoom_ret ZOOM_connection_srw_send_search(ZOOM_connection c) resultset = c->tasks->u.search.resultset; -#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)); + ZOOM_memcached_search(c, resultset); - yaz_log(YLOG_LOG, "For key %s got value %s", - wrbuf_cstr(resultset->mc_key), wrbuf_cstr(w)); - - wrbuf_destroy(w); - event = ZOOM_Event_create(ZOOM_EVENT_RECV_SEARCH); - ZOOM_connection_put_event(c, event); - resultset->live_set = 1; - } - } -#endif if (!resultset->setname) resultset->setname = xstrdup("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) @@ -323,23 +295,7 @@ static zoom_ret handle_srw_response(ZOOM_connection c, 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)