创建或更新实体时,不会更新Hibernate搜索索引
我正在使用Hibernate Search 4.4.2.Final,手动索引工作正常-使用以下代码时会创建索引文件:创建或更新实体时,不会更新Hibernate搜索索引,hibernate,spring-mvc,spring-transactions,hibernate-search,Hibernate,Spring Mvc,Spring Transactions,Hibernate Search,我正在使用Hibernate Search 4.4.2.Final,手动索引工作正常-使用以下代码时会创建索引文件: FullTextSession fullTextSession = Search.getFullTextSession(sessionFactory.getCurrentSession()); fullTextSession.createIndexer(clazz).batchSizeToLoadObjects(75).threadsForSubsequentFetching(5
FullTextSession fullTextSession = Search.getFullTextSession(sessionFactory.getCurrentSession());
fullTextSession.createIndexer(clazz).batchSizeToLoadObjects(75).threadsForSubsequentFetching(5).purgeAllOnStart(true).optimizeAfterPurge(true).optimizeOnFinish(true).cacheMode(CacheMode.NORMAL).startAndWait();
创建/更新实体时不更新索引
org.hibernate.search.event.impl.FullTextIndexEventListener
已正确注册为onPost*侦听器,并调用了我的自定义侦听器,因此我希望也调用FullTextIndexEventListener。但在使用Luke检查时,我没有看到添加的实体
我不想使用hibernate.search.worker.batch_size=1
,因为它现在已被弃用。
我没有设置hibernate.search.indexing\u strategy=manual
我正在使用Hibernate的sessionFactory
创建/更新实体后,我必须做什么才能将其索引
谢谢。你能确认听众已经打电话了吗?这一次,日志中应该有一条日志消息(如果调试级别为enable)。类似“Hibernate搜索事件侦听器已停用/激活”的内容。您还可以调试应用程序并设置断点。如果侦听器确实被调用,您应该共享有关设置和配置的更多信息。另外,关于如何创建和更新实体的代码可能会很有趣。例如,您如何处理事务?数据库是否得到了正确的更新?我已经实现了一个代码,它从我的应用程序中请求索引,并且有了新的实体。所以一切正常-只有在应用程序启动后创建/更新的索引中的记录在使用Luke时不可见。谢谢您的帮助。您是否检查了事件侦听器以及是否调用了它?是的。对于我的应用程序,新的实体已编制索引并可见,因此一切正常。您能否报告并附加一个触发问题的示例实体?最好用一个示例代码来看看如何存储它?