Lucene 使用Hibernate搜索完成事务时的性能问题

Lucene 使用Hibernate搜索完成事务时的性能问题,lucene,hibernate-search,Lucene,Hibernate Search,我们最近将HibernateSearch3.4更新为5.5.2。 在新版本中,我们在添加一个新的索引实体时遇到了严重的性能问题,该实体通过外键连接到许多其他实体,这在HS 3.4中是没有发生的。在使用VisualVM进行评测时,我发现大部分性能损失都在org.hibernate.search.backend.impl.WorkQueue.prepareWorkPlan()方法中,该方法是在提交添加新实体的事务期间调用的。最后,在调用堆栈的深处,我可以看到,在将lucene的新工作排入新实体队列的

我们最近将HibernateSearch3.4更新为5.5.2。 在新版本中,我们在添加一个新的索引实体时遇到了严重的性能问题,该实体通过外键连接到许多其他实体,这在HS 3.4中是没有发生的。在使用VisualVM进行评测时,我发现大部分性能损失都在org.hibernate.search.backend.impl.WorkQueue.prepareWorkPlan()方法中,该方法是在提交添加新实体的事务期间调用的。最后,在调用堆栈的深处,我可以看到,在将lucene的新工作排入新实体队列的过程中,有许多调用用于初始化新实体上的惰性集合,这显然是性能很高的,因为有许多对象通过FK连接到它。同样,这是版本5.5.2中的一个新行为,在3.4中没有出现


有什么建议吗?这是不是可以配置,而我只是缺少配置?我可以添加一些信息来帮助您理解上下文吗?

您好,这非常出乎意料。我的猜测是,要么你受到了一个bug的影响,该bug会跳过对一些必要数据的索引(从而加载它),要么——更有可能——这是Hibernate ORM 5.x加载模式发生某些变化的结果。我看到论坛上也有这样的问题,请让我们继续调查,因为它似乎不适合这样做。后续跟进