gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:47:47 25 4
gpt4 key购买 nike

我需要在 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 Data Solr 优先级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21431199/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com