编程语言
首页 > 编程语言> > java – 自定义存储库的Spring Data Solr优先级

java – 自定义存储库的Spring Data Solr优先级

作者:互联网

我需要在Spring Data Solr自定义存储库中实现以下内容:

(X OR Y) AND 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 OR (Y AND Z)

有任何想法吗?

解决方法:

当前的API不允许这种标准组合.有一个附加到DATASOLR-105的补丁可能会有所帮助,虽然它不能完全解决问题.

SimpleStringCriteria的使用现在可能有所帮助.请注意,必须将值转换为Solr可读格式.

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

更新

版本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));

标签:java,spring,spring-data,solr,spring-data-solr
来源: https://codeday.me/bug/20190831/1773140.html