Hibernate搜索用法,何时使用以及原因

时间:2017-04-07 21:07:03

标签: spring hibernate jpa spring-data hibernate-search

我有一个简单的问题,因为今天这是我第一次见到并使用Hibernate Search。有人可以解释一下使用Hibernate SearchJPA注释的冒险行为是什么,使用它而不是Spring Data(我的意思是CRUD / JPA存储库)是否有意义?什么时候Hibernate Search最有利可图?

E.g。我有简单的SpringMVC webapp,包含用户和事件。用户应该能够使用排序选项查看页面上的事件列表。

他应该能够通过给定的“字段”搜索特定事件。在这种情况下,我应该使用CRUD / JPA repos还是使用Hib Search?

提前谢谢!

2 个答案:

答案 0 :(得分:3)

正如您在documentation中看到的那样,Hibernate Search主要用于全文搜索,集群和索引结果而不仅仅是获取数据库表自然提供Spring dataHQLCriteria API ......

因此,在这种情况下,Hibernate Search用于高性能文本搜索,并扮演文本搜索引擎的角色(LuceneSphinx ...)。

在您的情况下:

因此,如果您正在开发一个基本的Web应用程序,您只需要从数据库中查询某些实体,那么您应该只使用Spring dataJPQL,核心Hibernate HQL或{{ 1}} API。

答案 1 :(得分:1)

有很多好文章。可以找到一个示例here。但是,为了非链接答案,如果您的大多数搜索都是全文(模糊搜索,通配符,地理空间等),您应该使用Hibernate搜索。否则,如果您对数据库连接,排序等更感兴趣。只需使用SQL。