solr 3.5 配置及应用(三)
来源:互联网 发布:网络澳门赌场是真的吗 编辑:程序博客网 时间:2024/05/18 01:26
solr 3.5 配置及应用(三)
2012-03-05 11:47 by sunney, 1178 阅读, 2 评论,收藏,编辑在solr 3.5 配置及应用(二)中在 Document文档和JavaBean相互转换时是比较麻烦的,现在讲用利用DocumentObjectBinder对象将SolrInputDocument 和 JavaBean对象相互转换。
1、在实体类(JavaBean),用@Field来注解字段,注解的名称要与文档的字段名称一致,如@Field("blogId")。如:blogsDO 这也有hibernate的注解要看清楚.
1 package com.stu.entity; 3 import java.io.Serializable; 4 import java.util.Date; 5 import javax.persistence.Column; 6 import javax.persistence.Entity; 7 import javax.persistence.GeneratedValue; 8 import javax.persistence.GenerationType; 9 import javax.persistence.Id; 10 import javax.persistence.Table; 11 import javax.persistence.Transient; 12 import org.apache.solr.client.solrj.beans.Field; 13 14 import com.stu.commons.util.DateUtils; 15 16 /** 17 * Description: 18 * @author LiChunming 19 * @version V1.0 20 * @createDateTime:2011-5-17 下午04:38:11 21 * @Company: MSD. 22 * @Copyright: Copyright (c) 2011 23 **/ 24 @Entity 25 @Table(name="blogs") 26 public class BlogsDO implements Serializable{ 27 /** 28 * 29 */ 30 private static final long serialVersionUID = -4721368786493126226L; 31 32 private String id; 33 @Field("blogId") 34 private Integer blogsId; 35 @Field 36 private String title; 37 @Field 38 private String content; 39 //与文档的字段名称是createTime 不一样时要注明,保持一样 40 @Field("createTime") 41 private Date gmtCreate; 42 @Field 43 private String nickName; 44 @Field 45 private String bTypeId; 46 @Field 47 private String bTypeName; 48 private Date gmtModified; 49 private String revDate; 50 private String sDate=""; 51 private String eDate=""; 52 53 @Transient //(hibernate 的注解) 54 @Field //在这注解也可以 55 public String getId() { 56 return id; 57 } 58 public void setId(String id) { 59 this.id = id; 60 } 61 //(hibernate 的注解) 62 @Id 63 @GeneratedValue(strategy = GenerationType.IDENTITY) 64 public Integer getBlogsId() { 65 return blogsId; 66 } 67 public void setBlogsId(Integer blogsId) { 68 this.blogsId = blogsId; 69 } 70 public String getTitle() { 71 return title; 72 } 73 public void setTitle(String title) { 74 this.title = title; 75 } 76 public String getContent() { 77 return content; 78 } 79 public void setContent(String content) { 80 this.content = content; 81 } 82 83 public String getNickName() { 84 return nickName; 85 } 86 public void setNickName(String nickName) { 87 this.nickName = nickName; 88 } 89 90 public String getbTypeId() { 91 return bTypeId; 92 } 93 public void setbTypeId(String bTypeId) { 94 this.bTypeId = bTypeId; 95 } 96 @Column(name="gmt_create") 97 public Date getGmtCreate() { 98 return gmtCreate; 99 }100 public void setGmtCreate(Date gmtCreate) {101 this.gmtCreate = gmtCreate;102 }103 @Column(name="gmt_modified")104 public Date getGmtModified() {105 return gmtModified;106 }107 public void setGmtModified(Date gmtModified) {108 this.gmtModified = gmtModified;109 }110 @Transient111 public String getRevDate() {112 if (this.gmtCreate == null) {113 return null;114 }115 return DateUtils.formatDate(gmtCreate, "yyyy-MM-dd HH:mm:ss");116 }117 public void setRevDate(String revDate) {118 this.revDate = revDate;119 }120 @Transient121 public String getbTypeName() {122 return bTypeName;123 }124 public void setbTypeName(String bTypeName) {125 this.bTypeName = bTypeName;126 }127 @Transient128 public String getsDate() {129 return sDate;130 }131 public void setsDate(String sDate) {132 this.sDate = sDate;133 }134 @Transient135 public String geteDate() {136 return eDate;137 }138 public void seteDate(String eDate) {139 this.eDate = eDate;140 }141 @Override142 public String toString() {143 return this.id + "#" + this.blogsId + "#" + this.title + "#" + this.content + "#" + this.bTypeId + "#" + this.bTypeName + "#" + this.nickName+"#" + this.gmtCreate;144 }145 146 }147
2、增加文档的方法(这方法就简单多了)
1 public void writerBlog(BlogsDO blog) { 2 // TODO Auto-generated method stub 3 try { 4 blog.setId(SerialNumberUtil.getRandomNum(4)); 5 //获取连接服务 6 CommonsHttpSolrServer solrServer= SolrServer.getInstance().getServer(); 7 //实例化 8 DocumentObjectBinder binder = new DocumentObjectBinder(); 9 //javabean对象转化为SolrInputDocument对象10 SolrInputDocument doc1 = binder.toSolrInputDocument(blog);11 solrServer.add(doc1);12 //提交事务才能生效13 solrServer.commit();14 } catch (SolrServerException e) {15 // TODO Auto-generated catch block16 e.printStackTrace();17 } catch (IOException e) {18 // TODO Auto-generated catch block19 e.printStackTrace();20 }21 }
3、查询文档
public List<BlogsDO> searchBlogsListbyBinder( Page page) throws IOException, ParseException { List<BlogsDO> blogList=new ArrayList<BlogsDO>(); CommonsHttpSolrServer solrServer= SolrServer.getInstance().getServer(); SolrQuery sQuery = new SolrQuery();
String para="*:*"; sQuery.setQuery(para); try { QueryResponse response=solrServer.query(sQuery); //获取查询文档 SolrDocumentList list = response.getResults(); //初始化DocumentObjectBinder对象 DocumentObjectBinder binder = new DocumentObjectBinder(); //SolrDocumentList对象转化为 List<BlogsDO>对象 blogList=binder.getBeans(BlogsDO.class, list); //总记录数 Integer counts=(int) list.getNumFound(); page.setCounts(counts); } catch (SolrServerException e) { // TODO Auto-generated catch block e.printStackTrace(); } return blogList;
}
- solr 3.5 配置及应用(三)
- solr 3.5 配置及应用(三)
- solr 3.5 配置及应用(三)
- solr 3.5 配置及应用(一)
- solr 3.5 配置及应用(二)
- solr 3.5 配置及应用(一)
- solr 3.5 配置及应用(二)
- solr 3.6 配置及应用(二)
- Solr 3.5 入门配置应用
- Solr 3.5 入门配置应用
- 三、Solr多核心及分词器(IK)配置
- solr 配置tika 应用
- solr 3.5 配置及服务器设置
- solr 3.5 配置及服务器设置
- Solr笔记三:Solr数据源配置(JNDI、DIH)及定时重做索引
- solr配置及使用
- Solr 安装及配置
- solr -- 安装及配置
- 小朱读文章之Hot Storage12[workshop]
- 一生何求
- MySQL问题集锦
- solr 3.6 配置及应用(二)
- 唠唠叨叨又七夕
- solr 3.5 配置及应用(三)
- 旧版本cocos2d的卸载与cocos2d-iphone-2.1-beta2安装问题
- 广度搜索算法实例
- 日志组件logback的介绍及配置使用方法(一)
- Box2D C++教程18-碰撞过滤器
- 日志组件logback的介绍及配置使用方法(二)
- Ubuntu10.04 Adobe Reader 中文包安装
- 对当前软件行业的一点点感想
- 小细节大烦恼——<a>的四种伪类