const char *elementSetName;
const char *smallSetElementSetName;
const char *mediumSetElementSetName;
- const char *facets;
assert(c->tasks);
assert(c->tasks->which == ZOOM_TASK_SEARCH);
yaz_oi_set_facetlist(oi, c->odr_out, facet_list);
}
else
- yaz_log(YLOG_WARN, "Unable to parse facets: %s", facets);
+ yaz_log(YLOG_WARN, "Unable to parse facets: %s", r->req_facets);
}
assert(r);
if (!rp)
break;
}
- r->setname = xstrdup(setname);
+ r->setname = odr_strdup(r->odr, setname);
yaz_log(c->log_details, "%p ZOOM_connection_send_search: "
"allocating set %s", c, r->setname);
}
{
yaz_log(c->log_details, "%p ZOOM_connection_send_search: using "
"default set", c);
- r->setname = xstrdup("default");
+ r->setname = odr_strdup(r->odr, "default");
}
ZOOM_options_set(r->options, "setname", r->setname);
}
}
}
-static void handle_facet_result(ZOOM_connection c, ZOOM_resultset r,
- Z_OtherInformation *o)
+void ZOOM_handle_facet_result(ZOOM_connection c, ZOOM_resultset r,
+ Z_OtherInformation *o)
{
int i;
for (i = 0; o && i < o->num_elements; i++)
}
-static void handle_search_result(ZOOM_connection c, ZOOM_resultset resultset,
- Z_OtherInformation *o)
+void ZOOM_handle_search_result(ZOOM_connection c, ZOOM_resultset resultset,
+ Z_OtherInformation *o)
{
int i;
for (i = 0; o && i < o->num_elements; i++)
{
ZOOM_resultset resultset;
ZOOM_Event event;
+ const char *resultCountPrecision = "exact";
if (!c->tasks || c->tasks->which != ZOOM_TASK_SEARCH)
return;
}
if (sr->resultSetStatus)
{
+ if (*sr->resultSetStatus == Z_SearchResponse_estimate)
+ resultCountPrecision = "estimate";
ZOOM_options_set_int(resultset->options, "resultSetStatus",
*sr->resultSetStatus);
}
ZOOM_options_set_int(resultset->options, "presentStatus",
*sr->presentStatus);
}
- handle_search_result(c, resultset, sr->additionalSearchInfo);
+ ZOOM_options_set(resultset->options, "resultCountPrecision",
+ resultCountPrecision);
+ ZOOM_handle_search_result(c, resultset, sr->additionalSearchInfo);
- handle_facet_result(c, resultset, sr->additionalSearchInfo);
+ ZOOM_handle_facet_result(c, resultset, sr->additionalSearchInfo);
resultset->size = *sr->resultCount;
- ZOOM_memcached_hitcount(c, resultset);
+ ZOOM_memcached_hitcount(c, resultset, sr->additionalSearchInfo,
+ resultCountPrecision);
resultset->live_set = 2;
handle_Z3950_records(c, sr->records, 0);
}