solr版本升级说明
来源:互联网 发布:linux delay 头文件 编辑:程序博客网 时间:2024/05/22 14:08
1 概述
Solr5发布了,带来了许多新特性,但Solrj的许多接口也发生了变化,下面是和之前的版本进行的一些对比:
变化1:SolrServer变成了SolrClient
应该说这个变化是合理的,毕竟Solrj就是一个客户端,命名为Server本身就有问题。这样一来,所有SolrServer系列的类都需要更改为SolrClient系列的类,好在方法基本继承过来了,只需要修改一下类名就可以了。
SolrServer -> SolrClient
HttpSolrServer -> HttpSolrClient
CloudSolrServer -> CloudSolrClient
变化2:提交请求的方式变了
在Solrj4中,向服务器提交请求的方式比较简单,首先扩展SolrRequest类,将需要组合的参数都以方法的形式暴露出来,并重写process方法进行参数组合,如下所示。
class MySolrRequest extends SolrRequest { ...... @Override public SolrResponseprocess(SolrServer server) throws SolrServerException, IOException { long startTime = System.currentTimeMillis(); CoreAdminResponse res = new CoreAdminResponse(); res.setResponse( server.request( this ) ); res.setElapsedTime( System.currentTimeMillis()-startTime ); return res; }} SolrRequest req = new MySolrRequest();SolrResponse res = req.process(solrServer);if (res.getResponse().findRecursive("error", "failure") != null) return false;return true;
在Solrj5中,SolrRequest被极大地增强了,定义了许多新的子类出来,用户基本上不需要自定义新的Request类了,但学习成本相应的也变高了。
以在Cloud中创建Collection为例,新的Request为CollectionAdminRequest.Create类,用户只需要创建这个类的实例就可以设置所有的相关参数。提交仍然是process方法,只不过这个方法已经不需要我们重载了,直接调用就可以了,而且还扩展了返回的SolrResponse类,例如这里返回的就是CollectionAdminResponse类,代码如下。
CollectionAdminRequest.Create req = new CollectionAdminRequest.Create();try { req.setCollectionName(coreName); req.setConfigName(confName); req.setReplicationFactor(factor); req.setNumShards(shards); req.setMaxShardsPerNode(maxShardsPerNode); CollectionAdminResponse res = req.process(cloudSolrClient); if (res.getResponse().findRecursive("error", "failure") != null) return false; return true;} catch (SolrServerException e) { e.printStackTrace();} catch (IOException e) { e.printStackTrace();}
新版的process方法比老版的多抛出一个IOException异常,需要增加对该异常的处理。
变化3:对Zookeeper的支持增强了
在Solrj4中,对Zookeeper的支持还比较简单,主要就是通过org.apache.solr.cloud.ZkController类来完成对Zookeeper中内容的管理。
到了Solrj5,对ZkController类的方法进行了分隔,新增加了不少类,而且干脆就抛弃了对ZkController类的支持,因此给代码升级带来不少麻烦。
例如对于对在Zookeeper中配置文件的管理,老版代码为
ZkController.uploadConfigDir(zkClient, new File(confDir), confName);ZkController.downloadConfigDir(zkClient, confName, new File(confDir));
新版增加了ZkConfigManager类进行专门管理,相应的方法也由静态方法变成了动态方法,尤其是参数从File类型变成了JDK7中新引入的Path类型。
ZkConfigManagerconfManager = new ZkConfigManager(zkClient);confManager.uploadConfigDir(Paths.get(confDir), confName);confManager.downloadConfigDir(confName, Paths.get(confDir));
变化4:solr安装目录差异
solr5和之前的3版本相差比较大,如:在solr5中已经没有schema.xml,而是改成managed-schema文件。
当然还有其他目录结构的变化,这里就不详细列出了。
- solr版本升级说明
- solr升级
- 2.0升级3.0版本注意事项说明
- xUtils中DBUtils 数据库版本升级 说明
- hpux DRD克隆软件版本升级说明
- SequoiaDB版本在线升级介绍说明
- SequoiaDB版本在线升级介绍说明
- 基础插件升级说明(到3.3.1.4版本)
- System.Data.Silverlight V2.0版本升级说明
- System.Data.Silverlight V2.1版本升级说明
- SequoiaDB版本升级及导入导出工具说明
- 4.ZooKeeper 3.0.0发行说明及版本升级
- 网上商城BrnShop1.9升级至2.1升级说明(非官方版本仅提供技术交流)
- 数据库篇之[bsp_banners]数据表-网上商城BrnShop1.9升级至2.1升级说明(非官方版本)
- 数据库篇之[bsp_adverts]数据表-网上商城BrnShop1.9升级至2.1升级说明(非官方版本)
- 数据库篇之[bsp_advertpositions]数据表-BrnShop1.9升级至2.1升级说明(非官方版本)
- 数据库篇之[bsp_adminoperatelogs]数据表-网上商城BrnShop1.9升级至2.1升级说明(非官方版本)
- 数据库篇之[bsp_favorites]数据表-BrnShop1.9升级至2.1升级说明(非官方版本)
- Web端即时通讯技术盘点:短轮询、Comet、Websocket、SSE
- MYSQL第一谈:ubuntu下如何安装MYSQL
- 解决hive注释中文乱码
- RequestBodyAdvice和ResponseBodyAdvice
- java 定时任务Timer
- solr版本升级说明
- MD5加密
- epoll
- 动态网页
- Android 之 USB Host 串口编程
- viewpager+fragment+slidingmenu滑动卡顿解决方法
- UnityShader案例(二)——Phong高光反射
- shiro与spring的整合
- XL1常用开发命令详细记录