问题描述
我正在尝试使用HttpSolrClient
版本solr-solrj.jar
创建一个5.5.0
。
这是我尝试的代码
SolrClient client = new HttpSolrClient(URL);
尝试此操作时出现错误
Type 'org/apache/http/impl/client/SystemDefaultHttpClient is
not assignable to 'org/apache/impl/client/CloseableHttpClient'
我将httpclient.jar
与版本4.4.1
一起使用。
httpclient.jar似乎有问题,但是我检查了源代码,对我来说似乎还可以。
有什么想法吗?
解决方法
尝试一下:
设置类路径
From /dist
apache-solr-solrj-*.jar
From /dist/solrj-lib
commons-codec-1.3.jar
commons-httpclient-3.1.jar
commons-io-1.4.jar
jcl-over-slf4j-1.5.5.jar
slf4j-api-1.5.5.jar
From /lib
slf4j-jdk14-1.5.5.jar
代码:
import org.apache.solr.client.solrj.SolrClient;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.impl.HttpSolrClient;
import org.apache.solr.common.SolrInputDocument;
import java.io.IOException;
public class SolrjPopulator {
public static void main(String[] args) throws IOException,SolrServerException {
SolrClient client = new HttpSolrClient.Builder("http://localhost:8888/solr/book/upload").build();
for(int i=0;i<200;++i) {
SolrInputDocument doc = new SolrInputDocument();
doc.addField("foo","book");
doc.addField("id","book-" + i);
doc.addField("name","Java Programming" + i);
client.add(doc);
if(i%100==0) client.commit(); // periodically flush
}
client.commit();
}
}