BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

Hibernate Search:全文检索你的领域模型

| 作者 Ryan Slobojan 关注 0 他的粉丝 ,译者 高昂 关注 0 他的粉丝 发布于 2007年6月27日. 估计阅读时间: 4 分钟 | 如何结合区块链技术,帮助企业降本增效?让我们深度了解几个成功的案例。

Hibernate Search项目的Beta第二版刚刚发布。InfoQ为此采访了Hibernate Search项目的发起人Emmanuel Bernard以了解更多细节,Emmanuel同时也是相关项目Hibernate AnnotationsHibernate EntityManager的发起人。根据Emmanuel所言,Hibernate Search目的是帮助Hibernate的使用者或是Java Persistence API(JPA)的使用者可以通过全文搜索索引来访问Hibernate或JPA管理的对象。Hibernate Search项目的主要特性包含以下几个方面:

  • Lucene集成——作为强大高效的检索引擎,Lucene的美名早已久经考验了;
  • 数据的自动插入和更新——当一个对象通过Hibernate添加或更新时,索引也会相应进行透明的更新;
  • 支持众多复杂的搜索方式——可快速的使用通配符进行搜索,以及多关键词全文检索(multi-word text searches)和近似或同义词搜索(approximation/synonym searches),或根据相关性排列搜索结果;
  • 搜索集群(Search Clustering)——Hibernate Search提供了内建搜索集群解决方案,其中包括一个基于JMS的异步查询和索引系统;
  • 对Lucene API接口的直接调用——如果用户打算处理某些特别复杂的问题,可以在查询中直接使用Lucene提供的API接口;
  • 对Lucene的自动管理——Hibernate Search可以管理并优化Lucene的索引,并且非常高效地使用Lucene的API接口。

项目的主要目标包含以下几个方面:

  • 易用性——和Hibernate的ORM映射一样,Hibernate Search帮助用户实现了业务90%的工作,并且使用户专注于余下更为困难的业务实现部分;
  • 和已有的Hibernate/JPA编程模型保持一致性——更轻松地集成Hibernate/JPA编程模型是“一开始就致力要实现的目标”。

Emmanuel在实践中给出了几个具体的实例,包括:

  • 通过转换对象构造的方式,HQL查询语句可以被转换为搜索查询,“通常只是几行代码”——其他的因素(执行查询,结果格式等)都保持不变;
  • 不需要启动过程,因为Hibernate Search透明地利用了已有的Hibernate/JPA基础架构;
  • 最小配置集合要求至少在persistence.xml或者hibernate.cfg.xml中设置两个属性。

关于最终发布时间表,Emmanuel指出3.0版本发布之前将在查询和索引最优化方面做出大量的工作,他就此总结道:

Hibernate Search的核心代码实际上是相当稳定的,发布版之所以仍标记为Beta的原因是我们对拓展API接口还没有充足的把握,Hibernate Search内核相当灵活,并且可以融入用户自定制的搜索策略。到目前为止,代码已经相对稳定,我们希望看到一个具备完善特性的产品,并保证API接口不会出现问题。

如同平常一样,开源项目在编码完成时发布,我所要说的就是这个夏天很长并且我没有安排什么额外的度假计划 :)

关于Hibernate Search实现策略好处和不足的有趣争论也随之展开,Sanjiv Jivan就此描述了他眼中的Hibernate Search优缺点,随后Emmanuel Bernard也回应了Sanjiv的看法。那么,亲爱的读者,对于Hibernate Search,您的观点又是如何呢?

查看英文原文:Hibernate Search: Indexed Full Text Search of your Domain Model

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

拭目以待 by he seven

好不好用,拭目以待

Hibernate还是不错的,新项目应该也会出色。 by Leon Kennedy

跟期待Hibernate Search的傻瓜化和效率。
---------
袋鼠蛋开源动态web服务器,拥有完全自主知识产权
www.kangaroo-egg.com

还不错 by Guo Xiaogang

还真的很好用,Hibernate Search通过我的“10分钟测试”了。
不过给我正在开发的一个项目加上Hibernate Search实现的搜索功能用了20分钟;
解决Hibernate Search跟其他库的不兼容花了2个小时(--)#

Re: 还不错 by chan king

何算稳定? by Lee Jet

beta版就是beta版。。看看这个bug吧:hibernate.onjira.com/browse/HSEARCH-921
在beta2 中才fix 掉。。。

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

5 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT