【问题标题】:Solr Query to Spring Data Solr Query Expression (Negation)Solr 查询到 Spring Data Solr 查询表达式(否定)
【发布时间】:2015-11-27 05:55:52
【问题描述】:

这是我的 solr 查询,它在 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 作为替代方案,但它似乎也不起作用。

有没有其他方法可以做到这一点。

【问题讨论】:

    标签: java spring solr


    【解决方案1】:

    我认为标准表达式与您粘贴的示例不同。

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

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

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

    【讨论】:

    • 您可以查看 solr 日志以查看 Criteria 生成的查询。这可能有助于重组该表达式。
    猜你喜欢
    • 2013-10-31
    • 1970-01-01
    • 1970-01-01
    • 2022-10-13
    • 1970-01-01
    • 2012-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多