Spring Data Solr Precedence for Custom Repository

java, solr, spring, spring-data, spring-data-solr

Solution

The current API does not allow this combination of criteria. There's a patch attached to DATASOLR-105 which could help though it does not solve the problem fully.

Usage of `SimpleStringCriteria` might help for now. Please be aware of the fact, that values have to be converted to a Solr readable format.

new SimpleQuery(new SimpleStringCriteria("(x or y) and z"));

Update

Version `1.2` will have this issue fixed, so that its possible to create the query as follows.

Criteria orPart = Criteria.where("x").is("foo").or("y").is("bar");
Criteria andPart = Criteria.where("z").is("roo");
Query query = new SimpleQuery(orPart.and(andPart));

Problem

I need to implement the following in a Spring Data Solr custom repository: (X OR Y) AND Z My current code is as follows: ``` Criteria criteria = new Criteria("x").is(X_VALUE); criteria = criteria.or(new Criteria("y").is(Y_VALUE); criteria = criteria.and(new Criteria("z").is(Z_VALUE); ``` But running this code I get the following precedence: X OR (Y AND Z) Any ideas?

Original source