2

我致力于将我的 orm 与弹性搜索集成。每次调用我的创建、更新、删除方法时,我都会在弹性搜索中执行相同的操作来更新我的索引。我正在通过 Hibernate 监听器 PostInsert、PostDelete、PostUpdate 执行此操作。现在我想知道的是,当我首先调用我的 orm 的 get 或 find 方法时,我在弹性搜索中搜索数据,如果在弹性搜索中找不到数据,我必须从我的数据库中获取它。为了实现这一点,我需要一些预听者。是否有任何类型的侦听器可以执行此操作,或者是否有任何其他替代方法可以执行此操作。提前谢谢。

4

3 回答 3

1

我们正在 Hibernate 团队中实现 Hibernate ORM 和 Elasticsearch 之间的完全集成。

查看 Hibernate Search 及其全新的 Elasticsearch 集成:

于 2016-05-27T14:37:28.640 回答
0

我认为您可以使用Hibernate 事件系统,并实现预加载或加载后触发器。在您的实现中,您可以访问通过事件对象加载的实体。

问题是这些触发器直接附加到会话,我认为没有办法将它们的范围限制为某些实体或查询,所以在你的类中,你将“看到”所有加载的实体,你必须选择哪些实体需要重载搜索方法。

这是一个可以帮助你的例子。

祝你好运!!

于 2012-09-07T07:02:42.990 回答
0

只需简单地为您的 get/find 方法做一些中间层 - 包装器,您首先检查结果是否可通过弹性搜索获得。

于 2012-09-07T07:32:22.350 回答