SolrJ内容类型无效

时间:2016-08-31 14:54:31

标签: java solr solrj

每当我在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。虽然我怀疑那是为了回应,而不是请求。

1 个答案:

答案 0 :(得分:2)

看起来好像它实际上并没有指向Solr服务器。你能否仔细检查你的早期代码,看看你是否肯定设置了正确的主机和端口(这对你来说不是默认的),以及正确的集合。