今天一个朋友对有关lucene方面的话题和我进行讨论一下,由于这两个月也没怎么碰lucene,加上以前也没真正接触过,所以交流起来还是挺有收获的,刚才我也查了查lucene方面的资料,然后又和有过lucene经验方面的朋友进行询问,这家伙太懒了,这么早就睡了,天都还没亮呢!想起我那两个月加班这时候还没出公司呢!好了,进入正题
接触过lucene和做过lucene开发的人都知道,lucene仅是一个API,它的强大功能都得用写代码区实现,还记得当初做WEB开发的时候,JSP、SERVLET写了那么多,后来struts1一出来就爽多了,相信走过这条路的同志们都深有同感吧!我是从J2EE转到插件开发的,环境所逼啊!
那么Compass究竟是什么呢?我来回答大家吧:它是一套适用了Lucene的搜索引擎框架。那么它有什么好处呢?还是我来告诉大家吧,知道的就别嫌我啰嗦啊,它提供了一套开源的、高性能的、可灵活配置的搜索引擎,可以为用户的应用程序提供搜索功能,大家都知道,数据大多是存储在数据库中的,而且应用程序都是有业务的,做过开发的人都应该熟悉Hibernate、ibatis、spring、struts等框架吧,其实Compass也可以和它们很好的结合在一起进行开发。
下面我就给大家写段代码看看它是如何将Lucene封装的吧
下面就是个实体类了我这随便写一写
怎么样,大家是不是很熟悉呢?没错,这就类似于Hibernate中的往表中插入一条记录。很显然,Compass对搜索引擎后台的操作进行了封装。同时,在概念上,它将Lucene中的一个个Document更加实体化,使用一种与模型(Domain)做过GEF开发人应该对Domain比较熟悉,Editor中也是需要Domain的,那么Compass要用这些实体来干什么呢?原来它是将这些实体对象构建成对象,然后建立索引,然后用户只需要通过实体的属性区查找就行了,这样,对用户来说,Lucene的底层操作是透明的,就像你老婆叫你去买菜,你叫儿子去买菜,然后儿子买完菜把菜给你,你再去给你老婆,那么你叫你儿子去买菜就是透明的了(对于你老婆),那么Compass的开发者只需要定义那些实体的域模型以及整个compass运行的环境就行实现搜索引擎的功能了,就先介绍到这里吧,我还得去写写工作方面的东西,大家晚安
接触过lucene和做过lucene开发的人都知道,lucene仅是一个API,它的强大功能都得用写代码区实现,还记得当初做WEB开发的时候,JSP、SERVLET写了那么多,后来struts1一出来就爽多了,相信走过这条路的同志们都深有同感吧!我是从J2EE转到插件开发的,环境所逼啊!
那么Compass究竟是什么呢?我来回答大家吧:它是一套适用了Lucene的搜索引擎框架。那么它有什么好处呢?还是我来告诉大家吧,知道的就别嫌我啰嗦啊,它提供了一套开源的、高性能的、可灵活配置的搜索引擎,可以为用户的应用程序提供搜索功能,大家都知道,数据大多是存储在数据库中的,而且应用程序都是有业务的,做过开发的人都应该熟悉Hibernate、ibatis、spring、struts等框架吧,其实Compass也可以和它们很好的结合在一起进行开发。
下面我就给大家写段代码看看它是如何将Lucene封装的吧
CompassConfiguration config = new CompassConfiguration().configure();
Compass compass = config.buildCompass();
CompassSession session = compass.openSession();
CompassTransaction tx = null;
try{
tx = session.beginTransaction();
下面就是个实体类了我这随便写一写
People people = new People();
people.setSex("男");
people.setAge("20");
session.save(people);
tx.commit();
}catch(Exception e){
if(null != tx){
tx.rollback();
}
}finally{
session.close();
}
怎么样,大家是不是很熟悉呢?没错,这就类似于Hibernate中的往表中插入一条记录。很显然,Compass对搜索引擎后台的操作进行了封装。同时,在概念上,它将Lucene中的一个个Document更加实体化,使用一种与模型(Domain)做过GEF开发人应该对Domain比较熟悉,Editor中也是需要Domain的,那么Compass要用这些实体来干什么呢?原来它是将这些实体对象构建成对象,然后建立索引,然后用户只需要通过实体的属性区查找就行了,这样,对用户来说,Lucene的底层操作是透明的,就像你老婆叫你去买菜,你叫儿子去买菜,然后儿子买完菜把菜给你,你再去给你老婆,那么你叫你儿子去买菜就是透明的了(对于你老婆),那么Compass的开发者只需要定义那些实体的域模型以及整个compass运行的环境就行实现搜索引擎的功能了,就先介绍到这里吧,我还得去写写工作方面的东西,大家晚安