Hibernate Search:用于索引的后台助手

黄子

我们计划在项目中使用带有Lucene的Hibernate Search,最终将不得不替换当前正在运行的应用程序。Hibernate搜索本身工作得很好,但是我对索引有一些疑问。我们的数据库中有许多旧数据,数据库工作人员在后台更改和添加数据,还有旧应用程序,该应用程序计划与新应用程序并行运行一段时间。如果只是旧数据,我可以在程序的第一次启动时运行一次索引,但是要同时获得旧应用程序和数据库工作者执行的更改,我需要有一个后台助手来更新索引定期地。有没有办法以令人满意的性能实现这一目标?

桑内

我本人也遇到过类似的情况,我们的解决方案是安排一个每晚的工作来运行索引重建。

我必须花一些时间来确保重建过程足够快,这可能需要进行一些研究,并在某些热实体和关键关系上启用Hibernate的二级缓存。

当然,这种方法仅在您的应用程序可以容忍稍微不同步的索引上工作到晚上下降时才有效。

其他人一直在通过JMS使用主/从配置,因此一个节点(主节点)每天重建索引的次数将超过一次:您可以指定需要重建索引的实体,从而可以限制在关键表上执行此类操作,或仅在旧版应用程序中实际执行过的操作。

通常,这样的“主”节点将仅重建索引并为从属服务器提供索引刷新,而Web请求将由从属服务器提供,因此可以限制主服务器上的开销,而不会影响Web服务器的性能。不要忘记在主节点上同时调整并行性和连接池,以免对数据库造成过多的负载:在这种情况下,您宁愿不对其进行调整以尽快完成,它的工作速度较慢。

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在Hibernate Search中索引数据

Hibernate Search索引单个租户

Hibernate Search查询类

插入后,Hibernate Search不会重新索引lucene索引

org.hibernate.HibernateException:在Hibernate Search中建立索引时出错(在事务完成之前)

Hibernate envers + hibernate-search :通过 Lucene/Elasticsearhc 索引读取审计信息

Hibernate-search elasticsearch数据索引是同步的还是异步的

使用投影可以提高Hibernate Search索引的构建性能吗?

Hibernate Search不为数据库中的项目建立索引

为什么Hibernate Search索引无法正常工作

使用多个关键字进行Hibernate Search的索引搜索

Hibernate Search抱怨实体,即使它根本没有被索引

使用 Elasticsearch 禁用 Hibernate Search 的索引映射创建

如何使用Hibernate-Search索引和搜索ENUM类型

如何在 Hibernate-search 中索引继承的字段?

Hibernate ScriptAssert用于数组验证

Hibernate @OrderBy用于嵌套属性

Hibernate Validator用于代理收集

使用Hibernate Search自动完成

Hibernate Search查询多个实体

实施Hibernate Search后,Hibernate Criteria弃用警告

Hibernate是否会自动创建索引?

如何使用Hibernate for PostgreSQL创建索引

适用于Oracle的Hibernate方言19

Hibernate 用于脏检查的“状态快照”

@Where与@SecondaryTable不适用于Hibernate

@AttributeOverride不适用于Hibernate 5

用于EclipseLink的Hibernate Envers(实体审核)

Hibernate CompositeUserType用于不可变对象