Description
The edismax lowercaseOperators=false option seems to have been broken by SOLR-3026. "foo and bar" and "foo or bar" are treated as "foo AND bar" and "foo OR bar", respectively, even when lowercaseOperators=false.
Fix is rather simple, I think (though I haven't tested this). Current code:
if (i>0 && i+1<clauses.size()) { if ("AND".equalsIgnoreCase(s)) { s="AND"; } else if ("OR".equalsIgnoreCase(s)) { s="OR"; } }
Proposed code:
if (lowercaseOperators) { if (i>0 && i+1<clauses.size()) { if ("AND".equalsIgnoreCase(s)) { s="AND"; } else if ("OR".equalsIgnoreCase(s)) { s="OR"; } } }
Also interesting is the treatment of "Or" and "oR", but I'll leave that as an exercise to the reader.
Attachments
Attachments
Issue Links
- relates to
-
SOLR-3026 eDismax: Locking down which fields can be explicitly queried (user fields aka uf)
- Closed