Changing other Connection Settings
CommonsHttpSorlrServer 允许设置链接属性。
Java代码
String url = "http://localhost:8983/solr"
CommonsHttpSolrServer server = new CommonsHttpSolrServer( url );
server.setSoTimeout(1000); // socket read timeout
server.setConnectionTimeout(100);
server.setDefaultMaxConnectionsPerHost(100);
server.setMaxTotalConnections(100);
server.setFollowRedirects(false); // defaults to false
// allowCompression defaults to false.
// Server side must support gzip or deflate for this to have any effect.
server.setAllowCompression(true);
server.setMaxRetries(1); // defaults to 0. > 1 not recommended.
EmbeddedSolrServer
EmbeddedSorrServer提供和CommonsHttpSorlrServer相同的接口,它不需要http连接。
Java代码
SolrCore core = SolrCore.getSolrCore();
SolrServer server = new EmbeddedSolrServer( core );
...
如果你想要使用 Multicore 特性,那么你可以这样使用:
Java代码
File home = new File( getSolrHome() );
File f = new File( home, "solr.xml" );
multicore.load( getSolrHome(), f );
EmbeddedSolrServer server = new EmbeddedSolrServer( multicore, "core name as defined in solr.xml" );
如果你在你的项目中内嵌solr服务,这将是一个不错的选择。无论你能否使用http,它都提供相同的接口。
用法
solrj 被设计成一个可扩展的框架,用以向solr服务器提交请求,并接收回应。
我们已经将最通用的一些命令封装在了solrServer类中了。
Adding Data to Solr
首先需要获得一个server的实例,
Java代码
SolrServer server = getSolrServer();
如果,你使用的是一个远程的solrServer的话呢,你或许会这样来实现getSolrServer()这个方法:
Java代码
public SolrServer getSolrServer(){
//the instance can be reused
return new CommonsHttpSolrServer();
}
如果,你使用的是一个本地的solrServer的话,你或许会这样来实现getSolrServer()方法:
Java代码
public SolrServer getSolrServer(){
//the instance can be reused
return new EmbeddedSolrServer();
}