读书人

solr client 简单化solr编程

发布时间: 2012-11-08 08:48:11 作者: rapoo

solr client 简化solr编程
作者:lianj_lee(1987)

做solr的开发已经很长时间了,对于官方的solrj还是不是很满意,所以为了广大solrer能更方便的利用solr,个人封装了一些代码,算是一个小小的框架把,欢迎大家拍砖。

目前项目已经开源,地址:http://code.google.com/p/clientforsolr/
目前的功能:

1》对solr的commit,update,delete,optimize等进行了封装,提供了更加方便的操作;
2》对实体类到SolrInputDocument或者SolrDocument到实体类或者SolrDocument到SolrInputDocument提供了简单的转换;
3》提供了SolrServer更加便利的获取方法;

简单介绍,更多详情见http://code.google.com/p/clientforsolr/


例如:

// 删除所有记录public void deleteAll(SolrServer server); // 删除idArrays数组中的记录,该数组中的元素为document的Id,idName为主键名public void deleteById(Object[] idArrays, String idName, SolrServer server);// 删除单个id记录public void deleteById(Object id, String idName, SolrServer server);// 删除某个对象,该对象必须有idpublic void deleteByExample(Object obj, String idName, SolrServer server);// 更新一个对象,主键必须提供,public void update(Object obj, String idName, SolrServer server);// 批量更新,Map的key为id,value为要更新的对象public void update(Map<Object, Object> objMap, String idName, SolrServer server);// 批量提交数据public void commit(List<Object> objectList, SolrServer server);// 提交一条记录public void commit(Object obj, SolrServer server);//  查询数据,提供分页支持,第一个参数:SolrParams封装了查询参数;第二个参数要查询的类;第三个参数起始记录;第四个参数查询数据量public <T>PaginationSupport<T> query(SolrParams params, Class<T> cls, int start, int rows, SolrServer server);// 查询数据,提供分页支持,第一个参数:查询的字符串;第二个参数要查询的类;第三个参数起始记录;第四个参数查询数据量public <T>PaginationSupport<T> query(String keyword, Class<T> cls, int start, int rows, SolrServer server);


更有提供了SolrServerFactory,更方便的获取SolrServerFactory,获取方式有两种:一种是通过配置文件中,提供SolrHome;第二种是通过程序中给定。

目前,还处于开发中,后续还有更多强大功能正在筹划中... ...


1 楼 lianj_lee 2009-12-16 修正了 EntityConvert转换时的Bug,但是请注意,在使用该类进行转换的时候,Schema.xml中的field在实体类中必须一一对应,并提供setter和getter方法。

近期,即将发布增加的新增SolrServer的子类 2 楼 talangniao 2010-01-14 0.1.1版本怎么打包上来,我用的是jdk 1.6.或者什么时候更新新版本?要进行使用测试.
谢谢 3 楼 talangniao 2010-01-14 你这一系列的solr文章,对我这种新手帮助真的太大了! 4 楼 illu 2010-11-09 EntityConvert 这个Solr本身使用@Field注解就可以解决 5 楼 木头的夏天 2011-12-19 写的真不错啊,佩服

读书人网 >编程

热点推荐