gpt4 book ai didi

spring-data - 休眠搜索与 spring-data-solr , spring-data-elasticsearch

转载 作者:行者123 更新时间:2023-12-04 02:51:19 36 4
gpt4 key购买 nike

我有一个 Spring Boot、Spring Data JPA (hibernate) Web 应用程序,并且想引入文本搜索功能。

我理解以下内容

  • hibernate search 或 spring-data-* 都可以集成到我的应用程序中
  • Hibernate 搜索可以使用嵌入式 Lucene 或外部弹性
    搜索。
  • 外部 Elasticsearch /solr 有其自身的好处,但我可以

    嵌入也开始。

  • 我的问题
  • 哪个库更易于开发和维护。
  • 我看到 solr 与 elasticsearch 的许多优点和缺点,但需要优点和
    Hibernate 搜索与 spring-data-*
  • 的缺点
  • 我找到了一个在现有的中引入 Hibernate Search 的示例
    应用。但没有关于 spring-data-,如何重新索引或触发
    spring-data-
  • 中现有数据库数据的索引

    最佳答案

    由于我是 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,但是它们之间不会相互通信。您将拥有两个独立的模型,您将分别对其进行更新和查询。
    其他一些元素:
  • 如果您不需要分布式索引,Hibernate Search 可以在嵌入式 Lucene 模式下运行,而无需所有 Elasticsearch 堆栈。它可能会更轻量级。
  • 由于抽象层,Hibernate Search 目前在自定义 Elasticsearch 映射或使用高级 Elasticsearch 功能时不是很灵活。编辑:现在 Hibernate Search 6 不再是这样了已被释放。
  • 一个 Spring-Data-HibernateSearch 模块过去一直在工作,但不再积极维护:https://github.com/snowdrop/spring-boot-hibernate-search-booster
  • 关于spring-data - 休眠搜索与 spring-data-solr , spring-data-elasticsearch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47918507/

    36 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com