{
/* 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 *]";
}
Odr_int trunc = get_truncation(apt);
wrbuf_rewind(w);
-
ret = rpn2solr_attr(ct, apt->attributes, w, solr_attr);
if (trunc == 0 || trunc == 1 || trunc == 100 || trunc == 104)
solr_attr_right->is_range &&
!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 <= 2 && solr_attr_right->is_range >= 2)
+ 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);
{
Z_Operator *op = q->u.complex->roperator;
int r;
+ struct solr_attr solr_attr_left, solr_attr_right;
+ WRBUF w_left = wrbuf_alloc();
+ WRBUF w_right = wrbuf_alloc();
if (nested)
pr("(", client_data);
- struct solr_attr solr_attr_left;
solr_attr_init(&solr_attr_left);
- WRBUF w_left = wrbuf_alloc();
- r = rpn2solr_structure(ct, pr, client_data, q->u.complex->s1, 1, w_left, &solr_attr_left);
+ r = rpn2solr_structure(ct, pr, client_data, q->u.complex->s1, 1, w_left, &solr_attr_left);
if (r) {
wrbuf_destroy(w_left);
return r;
- }
- struct solr_attr solr_attr_right;
+ }
solr_attr_init(&solr_attr_right);
- WRBUF w_right = wrbuf_alloc();
r = rpn2solr_structure(ct, pr, client_data, q->u.complex->s2, 1, w_right, &solr_attr_right);
if (r) {
wrbuf_destroy(w_right);
return r;
}
-
+
switch(op->which)
{
case Z_Operator_and:
{
int r;
WRBUF w = wrbuf_alloc();
- solr_transform_set_error(ct, 0, 0);
struct solr_attr solr_attr;
+ solr_transform_set_error(ct, 0, 0);
solr_attr_init(&solr_attr);
r = rpn2solr_structure(ct, pr, client_data, q->RPNStructure, 0, w, &solr_attr);
solr_write_structure(pr, client_data, &solr_attr);