【问题标题】:Hibernate Search vs spring-data-solr , spring-data-elasticsearch休眠搜索与 spring-data-solr , spring-data-elasticsearch
【发布时间】:2021-07-08 08:52:01
【问题描述】:
我有一个 Spring Boot,Spring Data JPA (hibernate) Web 应用程序,想引入文本搜索功能。
我明白以下内容
hibernate search 或 spring-data-* 都可以集成到我的应用中
Hibernate 搜索可以使用嵌入式 Lucene 或外部弹性
搜索。
-
外部弹性搜索/ solr 有它自己的好处,但我没问题
嵌入也开始。
我的问题
- 哪个库更易于开发和维护。
- 我看到 solr 与 elasticsearch 的许多优点和缺点,但需要优点和
Hibernate 搜索与 spring-data-* 的缺点
- 我找到了一个在现有系统中引入 Hibernate Search 的示例
应用。但在 spring-data- 上没有任何内容,如何重新索引或触发
spring-data-中现有数据库数据的索引-
【问题讨论】:
标签:
spring-data
spring-data-jpa
hibernate-search
spring-data-elasticsearch
spring-data-solr
【解决方案1】:
由于我是一名 Hibernate 开发人员,我显然有偏见,但我至少可以提供一些专注于 Hibernate Search 的元素。至于哪个“更好”,由你来判断。
主要区别在于 Hibernate Search 提供了 JPA 和您选择的索引(Lucene 或 Elasticsearch)之间的集成:
- Hibernate Search 将根据您的 JPA 实体的更改自动在您的全文索引中添加/更新/删除文档(一旦您提交事务)。
- Hibernate Search 将允许您构建全文查询(全文世界),并将结果检索为托管实体(JPA 世界)。
据我了解,Spring-Data-Elasticsearch 专注于访问 Elasticsearch,并且没有任何 JPA 集成。也就是说,你可以使用Spring-Data-JPA,也可以使用Spring-Data-Elasticsearch,但是它们之间不会相互通信。您将拥有两个独立的模型,您将分别对其进行更新和查询。
其他一些元素: