Java SolrQuery的SetQuery函数中字符串参数的正确用例?
我有qJava 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
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")
希望这有帮助