Set facets on SRW request. Only implemented for SOLR.
[yaz-moved-to-github.git] / client / client.c
index d9a98f8..e77e35c 100644 (file)
@@ -1284,7 +1284,7 @@ static int send_srw_host_path(Z_SRW_PDU *sr, const char *host_port,
     }
     else if (!yaz_matchstr(sru_method, "solr"))
     {
-        yaz_solr_encode(gdu->u.HTTP_Request, sr, out, charset);
+        yaz_solr_encode_request(gdu->u.HTTP_Request, sr, out, charset);
     }
 
     return send_gdu(gdu);
@@ -1455,7 +1455,7 @@ static int send_SRW_searchRequest(const char *arg)
         return 0;
     }
     sr->u.request->maximumRecords = odr_intdup(out, 0);
-
+    sr->u.request->facetList = facet_list;
     if (record_schema)
         sr->u.request->recordSchema = record_schema;
     if (recordsyntax_size == 1 && !yaz_matchstr(recordsyntax_list[0], "xml"))
@@ -2895,25 +2895,23 @@ static int cmd_facets(const char *arg)
         return 0;
     }
     size = strlen(arg);
-    if (only_z3950())
-    {
-        printf("Currently only supported for Z39.50.\n");
-        return 0;
+/*
+    MOVE to non-usage of it?
+    if (only_z3950() && !yaz_matchstr(sru_method, "solr")) {
+        // We are not Z39.50 and not SOLR (I think)
+        printf("WARN: Currently supported for Z39.50 and SOLR.\n");
     }
-    else
-    {
-        /* TODO Wrong odr. Loosing memory */
-        ODR odr = odr_createmem(ODR_ENCODE);
-        facet_list = yaz_pqf_parse_facet_list(odr, arg);
+ยบ/
+    /* TODO Wrong odr. Loosing memory */
+    ODR odr = odr_createmem(ODR_ENCODE);
+    facet_list = yaz_pqf_parse_facet_list(odr, arg);
 
-        if (!facet_list)
-        {
-            printf("Invalid facet list: %s", arg);
-            return 0;
-        }
-        return 1;
+    if (!facet_list)
+    {
+        printf("Invalid facet list: %s", arg);
+        return 0;
     }
-    return 2;
+    return 1;
 }
 
 
@@ -4369,7 +4367,7 @@ static void http_response(Z_HTTP_Response *hres)
         {
             Z_SRW_PDU *sr = 0;
             ODR o = odr_createmem(ODR_DECODE);
-            ret = yaz_solr_decode(o, hres, &sr);
+            ret = yaz_solr_decode_response(o, hres, &sr);
 
             if (ret == 0 && sr->which == Z_SRW_searchRetrieve_response)
                 handle_srw_response(sr->u.response);