我需要在 Spring Data Solr 自定义存储库中实现以下内容:
(X 或 Y) 和 Z
我当前的代码如下:
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);
但运行这段代码我得到以下优先级:
X 或(Y 和 Z)
有任何想法吗?
当前的 API 不允许这种标准组合。附有一个补丁DATASOLR-105 https://jira.springsource.org/browse/DATASOLR-105尽管它不能完全解决问题,但这可能会有所帮助。
的用法SimpleStringCriteria
目前可能有帮助。请注意,值必须转换为 Solr 可读格式。
new SimpleQuery(new SimpleStringCriteria("(x or y) and z"));
Update
Version 1.2
将修复此问题,以便可以按如下方式创建查询。
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));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)