Hibernate Search集群和近实时搜索

纽曼

我正在尝试找到最佳的索引解决方案,以在群集的Web应用程序中实现搜索引擎,但我在官方文档中找不到对我的问题的明确答案。

我的Java / Java EE后端将部署在几个负载平衡的实例中。搜索引擎将需要索引数据的近实时可用性(即,在索引和可检索性之间的间隔少于5秒)。

Hibernate Search可以在具有JGroups的集群环境中工作,但该文档还指出,作为一种折衷,它需要非集群索引和非共享索引,这几乎是实时的

  • 这是否意味着不能在JGroups从站/主站设置中使用NRTIndexManager即只能在单个节点上使用?
  • 这是否意味着通过这种设置,索引数据的可用性仅取决于刷新周期(将索引复制到从属节点的时间)?
纪尧姆·斯梅特(Guillaume Smet)

使用标准IndexManager,您只有在将最新的更改写入磁盘并重新打开IndexSearcher时,才能看到最新的更改。

默认情况下,Hibernate Search会写入磁盘并为每个查询打开一个新的IndexSearcher,因此您可以确保搜索始终与数据库同步。

NRTIndexManager与标准版本有所不同,因为它允许您搜索索引的最新更改,而无需在磁盘上进行显式写入。通常在需要高吞吐量且无法立即将所有内容写入磁盘时使用。因此,它与您是否会立即看到所做更改的事实并没有真正的关联:当您允许丢失一些索引数据时,这是一种优化-最新的更改可能会丢失。

http://docs.jboss.org/hibernate/search/5.5/reference/en-US/html_single/#jgroups-backend此处的文档所述,您可以使用同步JGroups进行Hibernate Search阻塞,直到所有索引都被阻塞为止。同步中。因此,它可以为您的情况服务。

请注意,我们目前正在Elasticsearch后端上使用5.6,这可能是您感兴趣的,因为它通常是为您的案例设计的。它仍处于测试阶段,但已经处于良好状态。您可能需要看一下它:http : //docs.jboss.org/hibernate/search/5.6/reference/en-US/html/ch11.html

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章