+static void yaz_solr_encode_facet_field(ODR encode, char **name, char **value, int *i, Z_FacetField *facet_field, int *limit) {
+ Z_AttributeList *attribute_list = facet_field->attributes;
+ struct yaz_facet_attr attr_values;
+ yaz_facet_attr_init(&attr_values);
+ yaz_facet_attr_get_z_attributes(attribute_list, &attr_values);
+ // TODO do we want to support server decided
+ if (!attr_values.errcode && attr_values.useattr) {
+ yaz_add_name_value_str(encode, name, value, i, "facet.field", (char *) attr_values.useattr);
+ // TODO max(attr_values, *limit);
+ if (attr_values.limit > 0 && attr_values.limit > *limit) {
+ *limit = attr_values.limit;
+ }
+ }
+}
+
+static void yaz_solr_encode_facet_list(ODR encode, char **name, char **value, int *i, Z_FacetList *facet_list, int *limit) {