Work-around for bogus SOLR facets when zero hits
[yaz-moved-to-github.git] / src / solr.c
index 0a5ca40..4ce820c 100644 (file)
@@ -255,7 +255,9 @@ int yaz_solr_decode_response(ODR o, Z_HTTP_Response *hres, Z_SRW_PDU **pdup)
                 if (ptr->type == XML_ELEMENT_NODE &&
                     !strcmp((const char *) ptr->name, "result"))
                         rc_result = yaz_solr_decode_result(o, ptr, sr);
-                if (match_xml_node_attribute(ptr, "lst", "name", "facet_counts"))
+                /* TODO The check on hits is a work-around to avoid garbled facets on zero results from the SOLR server.
+                 * The work-around works because the results is before the facets in the xml. */
+                if (rc_result == 0 && match_xml_node_attribute(ptr, "lst", "name", "facet_counts"))
                     rc_facets =  yaz_solr_decode_facet_counts(o, ptr, sr);
             }
             ret = rc_result + rc_facets;