return 0;
}
-void client_start_search(struct client *cl)
+void client_start_search(struct client *cl, const char *sort_strategy,
+ const char *sort_spec)
{
struct session_database *sdb = client_get_database(cl);
struct connection *co = client_get_connection(cl);
ZOOM_query_cql(q, cl->cqlquery);
if (*opt_sort)
ZOOM_query_sortby(q, opt_sort);
+ if (sort_strategy && sort_spec)
+ {
+ yaz_log(YLOG_LOG, "applying %s %s", sort_strategy, sort_spec);
+ ZOOM_query_sortby2(q, sort_strategy, sort_spec);
+ }
rs = ZOOM_connection_search(link, q);
ZOOM_query_destroy(q);
}
else
{
+ ZOOM_query q = ZOOM_query_create();
+
yaz_log(YLOG_LOG, "Search %s PQF: %s", client_get_id(cl), cl->pquery);
- rs = ZOOM_connection_search_pqf(link, cl->pquery);
+
+ ZOOM_query_prefix(q, cl->pquery);
+
+ if (sort_strategy && sort_spec)
+ {
+ yaz_log(YLOG_LOG, "applying %s %s", sort_strategy, sort_spec);
+ ZOOM_query_sortby2(q, sort_strategy, sort_spec);
+ }
+ rs = ZOOM_connection_search(link, q);
+ ZOOM_query_destroy(q);
}
ZOOM_resultset_destroy(cl->resultset);
cl->resultset = rs;