标签:
solrj是一个访问solr的客户端,它提供了一个接口,用于添加、更新、删除索引数据.
solrj一般保持向后兼容,所以你可以使用新版本的solrj访问老版本的solr服务,也可以使用老版本的solrj访问新版本的solr.
如果混合了1.x和以后的主版本,那么你必须设置响应解析器XML:
server.setParser(new XMLResponseParser());
3.x和4.x或者以后的版本混合的solr工作正常,只要不更改这个请求writer为二进制格式.
有一个例外情况是javabin格式,兼容方式在主版本之间已经改变.
solrj需要的最小jar包集合:
/dist:
apache-solr-solrj-*.jar
/dist/solrj-lib:
/lib:
slf4j-jdk14-1.5.5.jar
在官方maven仓库中solrj是可以使用的,加入一下依赖到pom.xml中:
<dependency> <artifactId>solr-solrj</artifactId> <groupId>org.apache.solr</groupId> <version>4.7.2</version> <type>jar</type> <scope>compile</scope> </dependency>
如果使用EmbeddedSolrServer,加入一下依赖:
<dependency> <artifactId>solr-core</artifactId> <groupId>org.apache.solr</groupId> <version>4.7.2</version> <type>jar</type> <scope>compile</scope> </dependency>
同样,如果使用了EmbeddedSolrServer,注意Servlet API的依赖:
<dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>3.0</version> </dependency>
如果碰到NoClassDefFoundError 异常,加入一下依赖:
<dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-simple</artifactId> <version>1.6.6</version> </dependency>
HttpSolrServer使用Apache Commons HTTP Client连接solr. 注意:在solr4.0中, CommonsHttpSolrServer 改成了 HttpSolrServer ,StreamingUpdateSolrServer 改成了ConcurrentUpdateSolrServer.
String url = "http://localhost:8983/solr"; /* * HttpSolrServer线程安全,如果使用下面构造器,必须对所有的请求重用相同的实例.如果实例在运行中创建的,它可能会导致连接泄漏. * 推荐的做法就是保持每个solr服务url的HttpSolrServer的静态实例,所有的请求都共享这个实例. * 参考https://issues.apache.org/jira/browse/SOLR-861查看更多细节. */ SolrServer server = new HttpSolrServer(url);
翻译:http://wiki.apache.org/solr/Solrj
标签:
原文地址:http://www.cnblogs.com/a198720/p/4274413.html