{
/* Unsure on whether this is the relation attribute constants? */
case Z_ProximityOperator_Prox_lessThan:
- return 0;
+ return "<";
case Z_ProximityOperator_Prox_lessThanOrEqual:
- return 0;
+ return "le";
case Z_ProximityOperator_Prox_equal:
return ":";
case Z_ProximityOperator_Prox_greaterThanOrEqual:
- return 0;
+ return "ge";
case Z_ProximityOperator_Prox_greaterThan:
- return 0;
+ return ">";
case Z_ProximityOperator_Prox_notEqual:
return 0;
case 100:
solr_attr->close = "]";
}
else if (!strcmp(relation, "ge")) {
- solr_attr->is_range = 3;
+ solr_attr->is_range = 4;
solr_attr->begin = "[";
solr_attr->close = " TO *]";
}
else if (!strcmp(relation, ">")) {
- solr_attr->is_range = 4;
+ solr_attr->is_range = 5;
solr_attr->begin = "{";
solr_attr->close = " TO *]";
}
{
if (solr_attr_left->is_range &&
solr_attr_right->is_range &&
- !strcmp(solr_attr_left->index, solr_attr_left->index))
+ !strcmp(solr_attr_left->index, solr_attr_right->index))
{
- if (solr_attr_left->is_range >= 3 && solr_attr_right->is_range <= 2)
+ if (solr_attr_left->is_range > 3 && solr_attr_right->is_range < 3)
return solr_write_range(pr, client_data, solr_attr_left, solr_attr_right);
+ else if (solr_attr_left->is_range < 3 && solr_attr_right->is_range > 3)
+ return solr_write_range(pr, client_data, solr_attr_right, solr_attr_left);
}
solr_write_structure(pr, client_data, solr_attr_left);
pr(" AND ", client_data);