Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.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 SolrQuery的SetQuery函数中字符串参数的正确用例?_Java_Solr_Solrj - Fatal编程技术网

Java SolrQuery的SetQuery函数中字符串参数的正确用例?

Java SolrQuery的SetQuery函数中字符串参数的正确用例?,java,solr,solrj,Java,Solr,Solrj,我有q queryString = "select?wt=json&rows=0&indent=true&facet=true&q=*:*&facet=true&facet.field=outcome_type" 如果您喜欢: http://x.x.x.x:8983/solr/abc/queryString 它起作用了。这里abc是一个核心 现在,我希望以编程方式执行它,并使用以下方法: SolrQuery query = new S

我有q

queryString = "select?wt=json&rows=0&indent=true&facet=true&q=*:*&facet=true&facet.field=outcome_type"
如果您喜欢:

http://x.x.x.x:8983/solr/abc/queryString 
它起作用了。这里abc是一个核心

现在,我希望以编程方式执行它,并使用以下方法:

    SolrQuery query = new SolrQuery();
    query.setQuery(queryString);
    QueryResponse resp = server.query(query);
此处queryString如上所述,但返回以下错误:

线程“main”中出现异常 org.apache.solr.client.solrj.impl.HttpSolrServer$RemoteSolrException: 未定义字段文本


我错过了什么?或者我需要通过设置函数来构建查询?

我使用了以下方法来执行查询,并且成功了:

    SolrQuery query = new SolrQuery();
    query.setQuery(queryString);
    query.setFacet(true);
    query.set("wt", "json");
    query.set("indent",true);
    query.setRows(0);
    query.addFacetField("outcome_type");
    QueryResponse resp = server.query(query);

我使用了以下方法来执行查询,并且效果良好:

    SolrQuery query = new SolrQuery();
    query.setQuery(queryString);
    query.setFacet(true);
    query.set("wt", "json");
    query.set("indent",true);
    query.setRows(0);
    query.addFacetField("outcome_type");
    QueryResponse resp = server.query(query);

我看你的报告中没有什么问题

  • 不应使用
    setQuery
    方法传递整个查询字符串。对于查询字符串中的几乎每个可用参数,在
    SolrQuery
    类中都有相应的方法

  • SolrQuery
    不支持
    json
    格式,SolrJ只支持
    javabin
    xml
    格式,建议不要指定任何
    wt
    参数

  • 因此,您应该仅对
    q
    参数使用
    setQuery
    方法:

    query.setQuery("*:*");
    
    对于其余参数,最简单的方法是使用
    add
    方法:

    query.add("rows", "0");  // instead of setRows(0)
    query.add("indent", "true"); 
    query.add("facet", "true"); // ... setFacet(true)
    query.add("facet.field", "outcome_type"); // ... addFacetField("outcome_type")
    

    希望这对你有所帮助

    我发现你的建议中没有什么问题

  • 不应使用
    setQuery
    方法传递整个查询字符串。对于查询字符串中的几乎每个可用参数,在
    SolrQuery
    类中都有相应的方法

  • SolrQuery
    不支持
    json
    格式,SolrJ只支持
    javabin
    xml
    格式,建议不要指定任何
    wt
    参数

  • 因此,您应该仅对
    q
    参数使用
    setQuery
    方法:

    query.setQuery("*:*");
    
    对于其余参数,最简单的方法是使用
    add
    方法:

    query.add("rows", "0");  // instead of setRows(0)
    query.add("indent", "true"); 
    query.add("facet", "true"); // ... setFacet(true)
    query.add("facet.field", "outcome_type"); // ... addFacetField("outcome_type")
    
    希望这有帮助