每当我在Solr上执行查询时,即使是最简单的查询*:*
,我也会收到错误消息
Exception in thread "main" org.apache.solr.client.solrj.SolrServerException: Error executing query
at org.apache.solr.client.solrj.request.QueryRequest.process(QueryRequest.java:100)
at org.apache.solr.client.solrj.SolrServer.query(SolrServer.java:301)
at com.atmire.dspace.versioning.ModificationLogger.search(ModificationLogger.java:294)
at com.atmire.dspace.versioning.ModificationsReporter.main(ModificationsReporter.java:92)
Caused by: org.apache.http.ParseException: Invalid content type:
at org.apache.http.entity.ContentType.parse(ContentType.java:233)
at org.apache.solr.client.solrj.impl.HttpSolrServer.executeMethod(HttpSolrServer.java:496)
at org.apache.solr.client.solrj.impl.HttpSolrServer.request(HttpSolrServer.java:210)
at org.apache.solr.client.solrj.impl.HttpSolrServer.request(HttpSolrServer.java:206)
at org.apache.solr.client.solrj.request.QueryRequest.process(QueryRequest.java:91)
... 3 more
虽然相同的查询在使用webclient或使用curl时运行良好:
curl http://localhost:8080/solr/versioning/select\?q\=\*%3A\*\&wt\=json\&indent\=true
我很困惑为什么查询不适用于java。相关的java代码
SolrQuery query = new SolrQuery().setQuery("*:*");
query.setRows(rpp).setStart(start);
QueryResponse queryResponse = solr.query(query);
return queryResponse.getResults();
似乎SolrQuery和solr可以选择明确地设置Content-Type,至少不是我在API文档中找到的。此外,我很惊讶,如果我必须使用Content-Type,即使我没有添加wt=json
,它实际上也适用于curl。虽然我怀疑那是为了回应,而不是请求。
答案 0 :(得分:2)
看起来好像它实际上并没有指向Solr服务器。你能否仔细检查你的早期代码,看看你是否肯定设置了正确的主机和端口(这对你来说不是默认的),以及正确的集合。