Hibernate Search 3.3 Beta1下载_Hibernate Search 3.3下载_Hibernate Search 3.3

  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]

About 歇歇脚|Java|Linux 1036 Articles
歇歇脚元老

1 Comment

Comments are closed.