Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用Spring数据解决方案的构建块连接父查询条件_Java_Spring_Solr_Spring Data_Spring Data Solr - Fatal编程技术网

Java 使用Spring数据解决方案的构建块连接父查询条件

Java 使用Spring数据解决方案的构建块连接父查询条件,java,spring,solr,spring-data,spring-data-solr,Java,Spring,Solr,Spring Data,Spring Data Solr,我有一个包含父子文档的Solr核心,我想构建动态查询来搜索这些文档 我正在使用Spring Data solr并希望使用Criteria类来构建这样的查询,以搜索特定的子文档并接收我使用块连接父查询的完整父级+子级 工作查询示例: q {!parent which=object_type:shipping_order}invoicenumber:31920000 fl *,[child parentFilter=object_type:shipping_order] 我尝试了不同的方法来

我有一个包含父子文档的Solr核心,我想构建动态查询来搜索这些文档

我正在使用
Spring Data solr
并希望使用Criteria类来构建这样的查询,以搜索特定的子文档并接收我使用块连接父查询的完整父级+子级

工作查询示例:

q   {!parent which=object_type:shipping_order}invoicenumber:31920000
fl  *,[child parentFilter=object_type:shipping_order]
我尝试了不同的方法来连接这个criteria对象来构建这样的查询,但我没有找到一个好方法

下面是在
springdatasolr
中构建这样一个查询的尝试,但它不起作用

Criteria invoiceNumberCritera= new Criteria("invoicenumber").is("31920000");
        Criteria doctypeCriteria = new Criteria("doctype").is("Invoice");

        SimpleQuery query = new SimpleQuery("{!parent which=object_type:shipping_order}");
        query.addCriteria(invoiceNumberCritera);
        query.addCriteria(doctypeCriteria);
        query.addProjectionOnField(new SimpleField("*"));
        query.addProjectionOnField(new SimpleField("[child parentFilter=object_type:shipping_order]"));
堆栈跟踪:

Caused by: org.apache.solr.client.solrj.impl.HttpSolrClient$RemoteSolrException: Error from server at http://localhost:8983/solr: org.apache.solr.search.SyntaxError: Cannot parse ' AND invoiceNumber:31920000 AND doctype:Invoice': Encountered " <AND> "AND "" at line 1, column 1.
Was expecting one of:
    <NOT> ...
    "+" ...
    "-" ...
    <BAREOPER> ...
    "(" ...
    "*" ...
    <QUOTED> ...
    <TERM> ...
    <PREFIXTERM> ...
    <WILDTERM> ...
    <REGEXPTERM> ...
    "[" ...
    "{" ...
    <LPARAMS> ...
    "filter(" ...
    <NUMBER> ...
    <TERM> ...

    at org.apache.solr.client.solrj.impl.HttpSolrClient.executeMethod(HttpSolrClient.java:649) ~[solr-solrj-8.1.1.jar:8.1.1 fcbe46c28cef11bc058779afba09521de1b19bef - ab - 2019-05-22 15:20:04]
    at org.apache.solr.client.solrj.impl.HttpSolrClient.request(HttpSolrClient.java:255) ~[solr-solrj-8.1.1.jar:8.1.1 fcbe46c28cef11bc058779afba09521de1b19bef - ab - 2019-05-22 15:20:04]
    at org.apache.solr.client.solrj.impl.HttpSolrClient.request(HttpSolrClient.java:244) ~[solr-solrj-8.1.1.jar:8.1.1 fcbe46c28cef11bc058779afba09521de1b19bef - ab - 2019-05-22 15:20:04]
    at org.apache.solr.client.solrj.SolrRequest.process(SolrRequest.java:207) ~[solr-solrj-8.1.1.jar:8.1.1 fcbe46c28cef11bc058779afba09521de1b19bef - ab - 2019-05-22 15:20:04]
    at org.apache.solr.client.solrj.SolrClient.query(SolrClient.java:1019) ~[solr-solrj-8.1.1.jar:8.1.1 fcbe46c28cef11bc058779afba09521de1b19bef - ab - 2019-05-22 15:20:04]
    at org.springframework.data.solr.core.SolrTemplate.lambda$executeSolrQuery$9(SolrTemplate.java:519) ~[spring-data-solr-4.0.9.RELEASE.jar:4.0.9.RELEASE]
    at org.springframework.data.solr.core.SolrTemplate.execute(SolrTemplate.java:167) ~[spring-data-solr-4.0.9.RELEASE.jar:4.0.9.RELEASE]
    ... 68 common frames omitted


你能解决这个问题吗?
Criteria fieldCriteria = Criteria.where("invoiceNumber").is("300230");
blockJoinCritera.addCriteria(fieldCriteria);