X-Git-Url: http://jsfdemo.indexdata.com/?a=blobdiff_plain;f=src%2Fclient.c;h=832eb3b9fc03ab7be2045ac6d8a625a68d63720f;hb=e2de92cec639e50141ac603f78f4020c5cd054ed;hp=e2a363c521837ab9e8d18287616a77024c5123c0;hpb=d23591e6076a514173e40954f9a878c0053506d4;p=pazpar2-moved-to-github.git diff --git a/src/client.c b/src/client.c index e2a363c..832eb3b 100644 --- a/src/client.c +++ b/src/client.c @@ -667,6 +667,7 @@ void client_start_search(struct client *cl) const char *opt_sru = session_setting_oneval(sdb, PZ_SRU); const char *opt_sort = session_setting_oneval(sdb, PZ_SORT); const char *opt_preferred = session_setting_oneval(sdb, PZ_PREFERRED); + const char *extra_args = session_setting_oneval(sdb, PZ_EXTRA_ARGS); char maxrecs_str[24], startrecs_str[24]; assert(link); @@ -675,6 +676,9 @@ void client_start_search(struct client *cl) cl->record_offset = 0; cl->diagnostic = 0; + if (extra_args && *extra_args) + ZOOM_connection_option_set(link, "extraArgs", extra_args); + if (opt_preferred) { cl->preferred = atoi(opt_preferred); if (cl->preferred) @@ -934,7 +938,7 @@ int client_parse_query(struct client *cl, const char *query) const char *sru = session_setting_oneval(sdb, PZ_SRU); const char *pqf_prefix = session_setting_oneval(sdb, PZ_PQF_PREFIX); const char *pqf_strftime = session_setting_oneval(sdb, PZ_PQF_STRFTIME); - + const char *query_syntax = session_setting_oneval(sdb, PZ_QUERY_SYNTAX); if (!ccl_map) return -1; @@ -978,7 +982,11 @@ int client_parse_query(struct client *cl, const char *query) cl->pquery = xstrdup(wrbuf_cstr(se->wrbuf)); xfree(cl->cqlquery); - if (*sru) + + /* Support for PQF on SRU targets. + * TODO Refactor */ + yaz_log(YLOG_DEBUG, "Query syntax: %s", query_syntax); + if (strcmp(query_syntax, "pqf") != 0 && *sru) { if (!strcmp(sru, "solr")) { if (!(cl->cqlquery = make_solrquery(cl)))