Hibernate 搜索与 spring-data-solr 、 spring-data-elasticsearch

2023-11-23

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

我了解以下内容

  • hibernate search 或 spring-data-* 都可以集成到我的应用程序中

  • Hibernate搜索可以与嵌入式Lucene或外部elastic一起工作 搜索。

  • 外部弹性搜索/ solr 有其自身的好处,但我可以接受

    嵌入式也开始。

我的问题

  • 哪个库比较好,方便开发和维护。
  • 我看到 solr 与 elasticsearch 的许多优点和缺点,但需要优点和缺点 Hibernate 搜索与 spring-data-* 的缺点
  • 我找到了一个在现有的项目中引入 Hibernate Search 的示例 应用。但 spring-data- 上没有任何内容、如何重新索引或触发 spring-data- 中现有数据库数据的索引

由于我是一名 Hibernate 开发人员,所以我显然有偏见,但我至少可以提供一些专注于 Hibernate 搜索的元素。至于哪个“更好”,那就由你来判断了。

主要区别在于 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 is currently not very flexible when it comes to customizing your Elasticsearch mapping or using advanced Elasticsearch features, because of the abstraction layer. EDIT: That's no longer true now that Hibernate Search 6 has been released.
  • Spring-Data-HibernateSearch 模块过去曾被开发过,但不再积极维护:https://github.com/snowdrop/spring-boot-hibernate-search-booster
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Hibernate 搜索与 spring-data-solr 、 spring-data-elasticsearch 的相关文章

  • 在浏览器刷新中刷新检票面板

    我正在开发一个付费角色系统 一旦用户刷新浏览器 我就需要刷新该页面中可用的统计信息 统计信息应该从数据库中获取并显示 但现在它不能正常工作 因为在页面刷新中 java代码不会被调用 而是使用以前的数据加载缓存的页面 我尝试添加以下代码来修复
  • 洪水填充优化:尝试使用队列

    我正在尝试创建一种填充方法 该方法采用用户指定的初始坐标 检查字符 然后根据需要更改它 这样做之后 它会检查相邻的方块并重复该过程 经过一番研究 我遇到了洪水填充算法并尝试了该算法 它可以工作 但无法满足我对 250 x 250 个字符的数
  • 如何执行“sudo nvm”?

    在我的 Mac 上 我想将一些需要 su 权限的包迁移到另一个节点版本 我使用 homebrew 安装 nvm 现在我需要执行 sudo nvm 或 reinstall packages将失败 me MacBook sudo nvm sud
  • iOS 电池监控 Swift

    我已将监控设置为启用 但模拟器和设备中的电池电量仍然为 1 UIDevice currentDevice batteryMonitoringEnabled true var level UIDevice currentDevice batt
  • 在 PHP 中模拟 jQuery.ajax 请求

    我必须在 PHP 中模拟 AJAX 请求 就像在 jQuery 中一样 我当前的代码在这里 原始 AJAX 调用 不得修改 ajax type POST url someFile php data data success function
  • tkinter:打开一个带有按钮提示的新窗口[关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 用户如何按下 tkinter GUI 中的按钮来打开新窗口 我只需要非常简单的解决方案 如果代码也能被解释那就太好了 这
  • Azure函数版本2.0-应用程序blobTrigger不工作

    我有一个工作功能应用程序 它有一个 blob 输入和一个事件中心输出 在测试版中工作 随着最新的更改 我的功能不再起作用 我尝试根据发行说明更新 host json 文件 但它没有引用 blob 触发器 version 2 0 extens
  • 从输入类型编号获取无效值

    我正在使用输入类型数字 当它无效时 我如何从中获取值 例如 使用类型编号并仅打印 e 这本身是无效的 我正在使用 React 但我认为这个问题非常普遍 onChange event console log event target valu
  • 从类模板参数为 asm 生成唯一的字符串文字

    我有一个非常特殊的情况 我需要为类模板中声明的变量生成唯一的汇编程序名称 我需要该名称对于类模板的每个实例都是唯一的 并且我需要将其传递给asm关键字 see here https gcc gnu org onlinedocs gcc 12
  • Java EE 目录结构

    我对以下教程有疑问 http www mkyong com jsf2 jsf 2 internationalization example http www mkyong com jsf2 jsf 2 internationalizatio
  • python 中的 after() 与 update()

    我是 python 新手 开始使用 tkinter 作为画布 到目前为止 我使用 update 来更新我的画布 但还有一个 after 方法 谁能给我解释一下这个函数 请举个例子 两者之间有什么区别 root after integer c
  • “pdo_mysql”已禁用,我无法启用它。我在 iMac 7.1 OSX 10.6.8 上安装了 MAMP v. 3.0.4

    pdo mysql 已禁用 我无法启用它 我在 iMac 7 1 OSX 10 6 8 上安装了 MAMP v 3 0 4 在我的 phpinfo 页面上 我可以看到唯一启用的 PDO 是 sqlite 如果我查看 php 5 5 10 扩
  • 如何在 Erlang 中将数字转换为单词?

    我发现了一个关于将数字转换为 单词 的有趣问题 代码高尔夫 数字到单词 https stackoverflow com questions 309884 code golf number to words 我真的很想看看你如何在 Erlan
  • Angularjs:两种方式的数据绑定和控制器重新加载

    如果使用路由和控制器 则模型不会在控制器重新加载之间保存其状态 Angular 在每个路由负载上创建控制器实例和新范围 例如 我在输入中键入具有 ng model something 的内容 转到另一条路线 然后返回第一条路线 我输入的所有
  • 在java中使用多个bufferedImage

    我正在 java 小程序中制作游戏 并且正在尝试优化我的代码以减少闪烁 我已经实现了双缓冲 因此我尝试使用另一个 BufferedImage 来存储不改变的游戏背景元素的图片 这是我的代码的相关部分 public class QuizApp
  • Prolog:子句在源文件中不在一起

    我有这段代码 Family tree female pen male tom male bob female liz female pat female ann male jim parent pam bob parent tom bob
  • Spring表单ModelAttribute字段验证避免400 Bad Request错误

    我有一个ArticleFormModel包含正常发送的数据html form由 Spring 使用注入 ModelAttribute注释 即 RequestMapping value edit method RequestMethod PO
  • 通过使用 navbarPanel() 并隐藏导航栏构建多页闪亮应用程序用户端(在 ui.R 中)?

    我想构建一个多页闪亮应用程序 我可以在其中控制用户可以看到哪个页面 迪安 阿塔利确实这个演示应用程序中有类似的东西 https github com daattali advanced shiny tree master multiple
  • 文件修改时间检查的成本

    对于Linux下包含少量字节的文件 我只需要处理自上次处理以来发生更改的时间 我通过调用 PHP 检查文件是否被更改clearstatcache filemtime 定期 由于整个文件总是很小 因此删除对 filemtime 的调用并通过将
  • 如何创建向后兼容 Windows 7 的缩放和尺寸更改每显示器 DPI 感知应用程序?

    我是 WPF 和 DPI 感知 API 的新手 正在编写一个在 Windows 7 8 1 和 10 中运行的应用程序 我使用具有不同每个显示器 DPI 设置的多个显示器 并且有兴趣将我的应用程序制作为跨桌面配置尽可能兼容 我已经知道可以将

随机推荐

  • 在基元列表上使用 DataContractSerializer 自定义元素名称

    我对在 DataContractSerializer 中使用基元列表时设置自定义元素名称的最佳方法感兴趣 假设我有以下类 其中包含字符串列表作为数据成员 DataContract public class ClassName DataMem
  • Flex 中的 StringBuilder

    我正在寻找 Flex 中的快速字符串连接类 就像Java中的StringBuilder一样 Thanks var str1 String Vinoth var str2 String Babu var str3 String Chennai
  • 有没有办法从一系列数字中生成种子?

    例如 如果 java 生成伪随机序列 9 3 2 5 6通过使用23作为种子 我该如何做相反的事情 即得到23不按顺序9 3 2 5 6 或者如何为特定序列分配种子 如果有数据库 这很容易做到 只需为序列分配一个随机密钥 INSERT IN
  • SSIS 错误:源的外部列与数据源列不同步;如何删除外部列?

    查询应输出特定的项目列表 以及商店信息和经理信息等信息 使用光标翻阅各种不同管理级别的列表 选择相关信息 然后通过电子邮件向该人员发送查询为其地区 地区 商店返回的内容 我的问题是旅程中的 SSIS 阶段 尽管代码的行为就像它在运行一样 但
  • 如何在 VBA for Excel 中为动态选择的单元格定义 ENTER 按键事件

    I got a dynamically chosen Cell that will be filled with some information that im going to put and when I put the inform
  • 创建自定义简单光标适配器

    我想创建一个非常简单的光标自定义光标适配器 以方便在单击时更改行项目的颜色 使用以下代码 private static int save 1 public void onListItemClick ListView parent View
  • 创建多个轻量级 Google Cloud Functions 的最佳实践?

    Google Cloud Functions 的工作方式似乎是 你的模块进入一个functions目录 that functions目录然后包含一个package json文件包含所有模块之间的共享依赖项 每个模块可以包含许多导出函数 go
  • HTTP 错误 404.4 - 未找到您正在查找的资源没有与其关联的处理程序

    我在 IIS 中托管了一个网站 但每当我浏览该网站时 我都会收到 404 4 我该如何解决这个问题 我已经提到了几篇文章 他们都说问题与静态文件有关 但它已经被映射了 我还能做什么 这是我的 iis 7 0 中处理程序映射的附图 有任何想法
  • 使用 JFileChooser 将文件类型附加到 Java 中的文件

    我正在尝试使用 JFileChooser 保存图像 我只希望用户能够将图像保存为 jpg 格式 但是 如果他们不输入 jpg 则不会将其保存为图像 是否可以以某种方式将 jpg 附加到文件末尾 File file chooser getSe
  • 如何在 Bootstrap 中仅在特定屏幕尺寸上显示某些内容?

    我希望能够仅在 html 中显示图像md屏幕 我正在考虑隐藏图像sm向下 并躲避lg and up 我怎样才能做到这一点 在 Bootstrap v4 中 您可以使用这些类d none d md block d lg none使内容仅在媒体
  • UML泛化与实现

    我对 UML 还很陌生 所以我对泛化和实现有一些疑问 我正在对电子微控制器的行为进行建模 并且需要从 UML 描述生成 C 代码 据我所知 一个class realizes接口 这意味着它可以提供接口的实现 A概括两个类之间可能存在关系 在
  • Miller Rabin 素性测试准确性

    我知道米勒 拉宾素性检验是概率性的 不过我想用它来编程任务没有任何出错的余地 如果输入数字是 64 位整数 即 long long in C Miller Rabin is indeed probabilistic but you can
  • Java 中数组的排列(重复)

    网站上有一些类似的问题 这些问题对我有一些帮助 但我无法完全确定这个问题 所以我希望这不是重复的 这是一项家庭作业 其中您有一组字符 A B C 并且必须使用递归来获取所有排列 有重复 我的代码是这样做的 char c A B C publ
  • 使用 Karma (Jasmine) 测试 AngularJS 工厂

    我正在努力使用 Karma Jasmine 测试 AngularJS 工厂 我无法将我的工厂注入OfficerValidationService多变的 我究竟做错了什么 注意 文件已正确加载 Factory use strict angul
  • 如何在 Flutter 中监控剪贴板?

    我正在寻找一种在 Flutter 中监视剪贴板的方法 我能找到的与 Flutter 上的剪贴板交互相关的所有内容是 剪贴板类 有谁知道如何监控系统剪贴板中的新项目 最好使用插件 可能有点晚了 但仍然如此 不需要插件或库 解决方案可能非常简单
  • .Select、.Activesheet、.Activecell 等...

    对于这个问题 我参考下面的帖子来澄清一下 为什么我的条件格式在用VBA添加时会偏移 在我这些天看到的很多很多帖子中 OP 被默默地允许使用 Activate Select Offset 等 而它们却为潜在错误 通常是由最终用户引起的 敞开了
  • 计算平均置信区间而不存储所有数据点

    对于大型n 请参阅下文了解如何确定足够大的值 根据中心极限定理 可以安全地将样本均值的分布视为正态 高斯 但我想要一个程序 为任何给出一个置信区间n 实现这一点的方法是使用 Student T 分布n 1自由程度 所以问题是 给定您一次收集
  • Ebean多对多查询

    我有两个类 用户和汽车 两者都有 ManyToMany 相互映射 User Entity public class User extends Model private int year ManyToMany cascade Cascade
  • 方法中变量的最大数量

    我在这里闲着 所以我有这个好奇心 有人可以告诉我 C 中每个方法的最大变量数是多少 我只是尝试编译生成的程序源 其中包含 26 26 26 26 个局部变量 而不是方法参数 它们被称为 aaaa aaab aaac等等 我遇到了这个限制 错
  • Hibernate 搜索与 spring-data-solr 、 spring-data-elasticsearch

    我有一个 Spring Boot Spring Data JPA hibernate Web 应用程序 想要引入文本搜索功能 我了解以下内容 hibernate search 或 spring data 都可以集成到我的应用程序中 Hibe