我们最近从Hibernate Search 3.4更新到5.5.2。 在新版本中,我们在添加一个新的索引实体时遇到了严重的性能损失,该实体通过外键连接到许多其他实体,这在HS 3.4中没有发生。在使用VisualVM进行性能分析时,我发现大部分性能命中都在方法org.hibernate.search.backend.impl.WorkQueue.prepareWorkPlan()中,该方法在提交添加新实体的事务期间调用。最后,在调用堆栈的深处,我可以看到在为新实体排队lucene的新工作的过程中,有许多调用来初始化新实体上的延迟集合,这显然是由于许多对象而导致性能沉重通过FK连接到它。同样,这是版本5.5.2中的新行为,并且在3.4中没有出现。
有什么建议吗?这有可能是可配置的,我只是缺少配置?是否有任何可以帮助您理解背景的信息?