【发布时间】:2019-11-28 14:25:48
【问题描述】:
我有一个使用 Hibernate 的 Spring Boot 应用程序,我正在向它添加 Hibernate Search。该应用程序使用带有 Hibernate 的模式分离的多租户,实现 MultiTenantConnectionProvider 和 CurrentTenantIdentifierResolver
我想在应用程序启动时创建初始搜索索引(或重新索引),以便能够搜索现有数据。
这是执行索引的服务:
@Service
public class SearchService {
@PersistenceContext
private EntityManager entityManager;
@Transactional
public void initializeSearchIndex() {
try {
FullTextEntityManager fullTextEntityManager = Search.getFullTextEntityManager(entityManager);
fullTextEntityManager.createIndexer().startAndWait();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
但问题是我不知道在哪里调用此服务。因为它使用EntityManager 而不是DataSource,所以它似乎与单个租户(数据库模式)相关联。有没有办法为整个数据库创建索引?如果是这样,在哪里调用它?
【问题讨论】:
标签: spring-boot hibernate-search