Solr查询到Spring Data Solr查询表达式(否定)

时间:2015-11-26 19:57:25

标签: java spring solr

这是我的solr Query,它可以很好地从Solr接口运行,但是我无法通过Spring-Data Solr运行它。否定或不是似乎没有发生。

NOT( blocked:IN OR ( blocked:WW AND NOT( allowed : IN ) ) )

这是我在Java代码中编写的内容。

criteria =(new Criteria("blocked").contains(value).or(new Criteria("blocked").contains(value).and(new Criteria("allowed").contains(value).not())).notOperator());

但这似乎没有用,我也尝试否定整个查询,将NOTOR更改为AND作为替代方案,但它似乎也不会工作。

有没有其他方法可以达到这个目的。

1 个答案:

答案 0 :(得分:0)

我不认为条件表达式与您粘贴的示例相同。

需要移动notOperator之前的大括号。

标准=(新标准(“阻止”)。包含(值)。                             或(新标准(“阻止”)。包含(值).and(                     新标准(“允许”)。包含(值).not())) .notOperator();

您实际上可能不会尝试创建匿名条件对象 - 以使其可读。这是您通过单行代码选择多行代码的情况之一。