spring - 何时使用 Searchable 进行查询,何时使用 Hibernate?

标签 spring hibernate grails lucene grails-2.0

我使用 Hibernate 以及 Grails Searchable Plugin这是基于 LuceneCompass .我想知道什么时候应该使用什么来从数据库中查询对象。

何时使用 Hibernate 以及何时使用 Searchable 是否有经验法则?

最佳答案

当您在整个应用程序中考虑自由格式文本搜索时,Searcable 插件将非常有用。

举个例子,如果您正在开发一个银行应用程序并且您正在构建一个具有搜索功能的门户。并且您希望搜索对于所有关键元素(如客户姓名、ssn、电话号码和/或电子邮件 ID)都是自由形式的,然后您希望使用可搜索的内容为这些元素编制索引,并提供与可搜索的搜索对话以获得即时搜索结果。为此,您至少必须索引这些关键元素。当您添加更多关键搜索元素时,索引会增长。

另一方面,如果您不想索引很多元素,hibernate 将帮助您提供详细信息。为了扩展上面的示例,一旦您在 SSN 上进行了搜索并获得了成功,在选择该条目时,您可以使用 hibernate 从使用 hibernate 的底层持久层获取详细信息。

推断:
对于快速、高性能、可搜索的自由形式搜索是一种选择。
为了收集详细信息,发布搜索,我认为 hibernate 是要走的路,除非您也想使用可搜索的详细信息,在这种情况下,索引的大小将以 Gigs 为单位。

关注 here在 Elasticsearch 中可能有助于理解。
我的观点是让弹性/可搜索的更轻,让繁重的部分由 hibernate 处理。

注意
附带说明一下,我建议使用 elastic而不是可搜索的。它还有一个很有用的 groovy API。另请注意,弹性插件使用 v0.20.0 版本的 elastic search现在,我猜最新的是 v0.90.2。如果需要,您可以直接使用 Elasticsearch 作为依赖项并获取最新功能。

关于spring - 何时使用 Searchable 进行查询,何时使用 Hibernate?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18059139/

相关文章:

git - IntelliJ Grails支持+ Git

java - 通过 spring 表单操作传递的 URI 错误

java - Spring Boot 2 @OrderBy 被忽略

java.lang.StackOverflowError : null for the jpa saveAll

java - Hibernate一对多映射(注解)

Grails 事务和 session

java - Spring-Batch 第二步无法正常工作

mysql - 如何在 micronaut 中使用 Gorm 为 mysql 配置 application.yml

java - 使用Spring和Hibernate跨多个数据库进行分布式事务的 'best'方法是什么

grails - 不使用 Grails 可搜索插件保存域对象