Hibernate Search 3.3第一个beta版本-Hibernate Search 3.3 Beta1下载地址发布了,关注Hibernate Search的朋友可以去官方获取最新的Hibernate Search 3.3 Beta1下载地址下载试用。本次发布的Hibernate Search 3.3 Beta1最大的特性就是引入了Hibernate Search query DSL,要知道编写Lucene查询并不是一件容易的事情,尤其是当lucene检索建立在面向对象的Hibernate之上的时候,改问题更加明显。由于Hibernate Search query DSL的引入,Hibernate隐藏了创建索引和查询过程中将对象于索引、查询字符串的转换的细节(类似Hibernate的ResultTransformer),让用户可以使用Hibernate风格进行Lucene检索。同时Hibernate Search 3.3 Beta1也增加了与最新的Hibernate 3.6的兼容,同时修正了大量bug。喜欢尝鲜的朋友可以尝试将Hibernate Search 3.3 Beta1于Hibernate 3.6一起使用了。
简单介绍下Hibernate和Hibernate Search的关系,算是扫盲了。Hibernate是目前Java开源世界最流行的 ORM框架之一。目前比较火的组合SSH(Struts + Spring + Hibernate)已经被广泛使用。Hibernate的优势是开发效率,这也是ORM工具的共通点。使用Hibernate能大幅度提高开发者的开发效率,同时能更好的在程序中实现OO的思想。可以说以Hibernate为代表的ORM工具,是在面向对象的数据库普及之前最好的一个选择。但使用 Hibernate同时也会面临一定的问题,当遇到大字段需要模糊匹配检索的时候,SQL语句的like变得力不从心,效率的大幅度下降是不可避免的。于是Hibernate 携手Java社区最流行的全文检索工具Lucene,推出了Hibernate Search,用于提供那些使用 Hibernate的开发者一个无缝的链接Hibernate与Lucene的平台。
Hibernate Search的作用是对数据库中的数据进行检索,无论是小型字段还是大型字段,Hibernate Search都可以进行索引并检索,只是全文检索在大字段的检索时会体现出明显的优势。Hibernate Search可以将数据库中的大字段(例如声明为text的字段)建立全文索引,之后可以通过Hibernate Search对这些字段进行全文检索。区别与传统Lucene的解决方案的是Hibernate Search返回的结果集已经被Hibernate Search封装成为Hibernate 管理的POJO,这样开发者可以在使用Hibernate的同时无缝集成Lucene索引,同时享受Lucene索引的高效以及Hibernate带来的 OO特性。
Hibernate Search 3.3 Beta1下载地址:
Hibernate Search 3.3 Beta1下载
Hibernate Search 3.3 Beta1 maven引用
org.hibernate hibernate-search 3.3.0.Beta1
Hibernate Search 3.3 Beta1中使用Hibernate Search query DSL例子:
QueryBuilder mythQB = searchFactory.buildQueryBuilder().forEntity( Myth.class ).get(); //look for popular modern myths that are not urban Date twentiethCentury = ...; Query luceneQuery = mythQB .bool() .must( mythQB.keyword().onField("description_stem").matching("urban").createQuery() ) .not() .must( mythQB .range() .onField("starred") .from(3).excludeLimit() .to(5) .createQuery() ) .must( mythQB .range() .onField("creationDate") .above(twentiethCentury) .createQuery() ) .createQuery();
[ad#468-60]
与compass相比 怎么样啊~