有没有办法将De Morgan定律应用于Spring Data Solr中的动态查询?

时间:2017-10-26 09:32:43

标签: spring solr criteria spring-data-solr

我遇到了以下问题:

当我的动态生成标准的一部分仅包含否定时,Solr似乎不喜欢并返回任何内容,如下所示:

 AND (-title_facet:*title* AND -title_facet:*List*)

(这是一个由两个独立的标准创建的Crotch)

由于这确实存在问题,有没有办法将De Morgan定律应用于所述标准,因此它将是:

AND -(title_facet:*title* OR title_facet:*List*)

我正在使用Spring-data-solr 1.5.4

1 个答案:

答案 0 :(得分:3)

AND (-title_facet:*title* AND -title_facet:*List*)不起作用的原因是因为它没有任何东西可以从中减去匹配的文档。

Solr通过在查询前面附加所有文档的集合将其用作单个查询时解决此问题,但是当您在查询中进行相同的操作时,它将不会出现。< / p>

AND (*:* AND -title_facet:*title* AND -title_facet:*List*)

..应该有效,因为你有一套适当的文件(所有文件),你可以减去与其他两套相匹配的文件。