这是我的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());
但这似乎没有用,我也尝试否定整个查询,将NOT
和OR
更改为AND
作为替代方案,但它似乎也不会工作。
有没有其他方法可以达到这个目的。
答案 0 :(得分:0)
我不认为条件表达式与您粘贴的示例相同。
需要移动notOperator之前的大括号。
标准=(新标准(“阻止”)。包含(值)。 或(新标准(“阻止”)。包含(值).and( 新标准(“允许”)。包含(值).not()))) .notOperator();
您实际上可能不会尝试创建匿名条件对象 - 以使其可读。这是您通过单行代码选择多行代码的情况之一。