读书人

solrj 的施用总结

发布时间: 2012-09-10 11:02:32 作者: rapoo

solrj 的使用总结
1、solrserver的获取

1.1CommonsHttpSolrServer

CommonsHttpSolrServer 使用HTTPClient 和solr服务器进行通信。

Java代码
    String?url?= “http://localhost:8983/solr”; SolrServer?server?=?new CommonsHttpSolrServer(?url?);
String url = "http://localhost:8983/solr";  SolrServer server = new CommonsHttpSolrServer( url );

Setting XMLResponseParser

sorlr J 目前使用二进制的格式作为默认的格式。对于solr1.2的用户通过显示的设置才能使用XML格式。

Java代码
    server.setParser(new XMLResponseParser());
server.setParser(new XMLResponseParser());

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);
  1. server.setMaxRetries(1); //?defaults?to?0.??>?1?not?recommended.
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.

1.2EmbeddedSolrServer

EmbeddedSorrServer提供和CommonsHttpSorlrServer相同的接口,它不需要http连接。

Java代码
    SolrCore?core?=?SolrCore.getSolrCore(); SolrServer?server?=?new EmbeddedSolrServer(?core?); …
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” );
 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类中了。

2.Adding Data to Solr

读书人网 >互联网

热点推荐