X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=src%2Fsolr.c;h=7a13940807dcdc75b7aeac73e2e6d8ce3f16871f;hp=d4f63ca043af37918acec7164c4da9ecfd20a3b5;hb=d962efcd2c1f0a3abfb0c40e81e298d69a9757bd;hpb=b1f4aab8ff8fbf10958a3a18644972165d60621c diff --git a/src/solr.c b/src/solr.c index d4f63ca..7a13940 100644 --- a/src/solr.c +++ b/src/solr.c @@ -162,7 +162,7 @@ static void yaz_solr_decode_facet_counts(ODR o, xmlNodePtr root, Z_SRW_searchRet facet_list_field_set(o, facet_list, yaz_solr_decode_facet_field(o, node, sr), num_facets); num_facets++; } - sr->facet_list = facet_list; + sr->facetList = facet_list; break; } } @@ -202,19 +202,18 @@ int yaz_solr_decode_response(ODR o, Z_HTTP_Response *hres, Z_SRW_PDU **pdup) } else { - /** look for result node */ + /** look for result (required) and facets node (optional) */ + int rc_result = -1; + int rc_facets = 0; for (ptr = root->children; ptr; ptr = ptr->next) { if (ptr->type == XML_ELEMENT_NODE && !strcmp((const char *) ptr->name, "result")) - yaz_solr_decode_result(o, ptr, sr); + rc_result = yaz_solr_decode_result(o, ptr, sr); if (match_xml_node_attribute(ptr, "lst", "name", "facet_counts")) - yaz_solr_decode_facet_counts(o, ptr, sr); - } - if (!ptr) - { - ret = -1; + rc_facets = yaz_solr_decode_facet_counts(o, ptr, sr); } + ret = rc_result + rc_facets; } } if (doc) @@ -294,8 +293,8 @@ int yaz_solr_encode_request(Z_HTTP_Request *hreq, Z_SRW_PDU *srw_pdu, yaz_add_name_value_str(encode, name, value, &i, "fl", request->recordSchema); - if (request->facet_list) { - Z_FacetList *facet_list = request->facet_list; + if (request->facetList) { + Z_FacetList *facet_list = request->facetList; int limit; Odr_int olimit; yaz_add_name_value_str(encode, name, value, &i, "facet", "true");