Solr 1.4 和 Solrj 4.6 需要哪些兼容性更改?

What compatibility changes required for Solr 1.4 and Solrj 4.6?

我已将 Solrj 从 1.4 升级到 4.6,并同时支持 Solr server 1.4 和 Solr server 4。

当我使用 Solrj 4.6 和 Solr server 1.4 执行以下代码时,出现异常 Invalid version (expected 2, but 1) or the data in not in 'javabin' format

HttpSolrServer server = new HttpSolrServer(baseURL);
try {
    System.out.println(server.ping());;
} catch (SolrServerException | IOException e1) {
}

为了解决这个跨版本兼容性问题,在solr wiki中提到,将parser设置为XMLResponseParser。通过此实现,我的代码更改如下:

HttpSolrServer server = new HttpSolrServer(baseURL);
server.setParser(new XMLResponseParser());
try {
    System.out.println(server.ping());;
} catch (SolrServerException | IOException e1) {
}

现在我收到如下不同的错误:

Exception in thread "main" org.apache.solr.client.solrj.impl.HttpSolrServer$RemoteSolrException: Expected content type application/xml; charset=UTF-8 but got text/xml;charset=UTF-8. <?xml version="1.0" encoding="UTF-8"?>
<response>
<lst name="responseHeader"><int name="status">0</int><int name="QTime">3</int><lst name="params"><str name="fl">*</str><str name="echoParams">all</str><str name="version">2.2</str><str name="echoParams">all</str><str name="q">solrpingquery</str><str name="qt">standard</str><str name="wt">xml</str><str name="version">2.2</str></lst></lst><str name="status">OK</str>
</response>

我请求你帮助解决这个问题。

根据 JIRA (https://issues.apache.org/jira/browse/SOLR-5532),这个错误存在于 Solr 4.6

如果可能的话,我建议您至少将 Solr 4.6 更新到 4.6.1,或者更新到 4.7 甚至最新的 4.10。