Elasticsearch不能处理由liquibase加载的数据



我有一个由JHipster 3.0.0生成的项目,我使用elasticsearch作为搜索引擎。

我正在使用liquibase将数据加载到一个表中,但我不能使用elasticsearch查询这些数据,因为我从未在DataSearchRepository上使用liquibase加载的数据调用save()方法。

这是我如何加载数据在一个liquibase xml文件:

    <sqlFile dbms="postgresql"
             encoding="utf8"
             path="../data.sql"
             relativeToChangelogFile="true"/>

现在,我加载所有数据,然后在应用程序启动时使用DataSearchRepository保存它们:

@PostConstruct
private void init() {
   dataSearchRepository.save(dataRepository.findAll());
}

但是我希望只执行一次,而不是每次应用程序启动时都执行。

这些数据是"静态的"(30 000行),所以这就是为什么我想继续使用sql文件加载它们。

有没有更好的方法或者我必须坚持我的方法?

试试我的项目:https://github.com/geraldhumphries/generator-jhipster-elasticsearch-reindexer

这将生成一个服务,允许您将Elasticsearch与数据库同步。它与您的实现非常相似,但它需要由管理员用户手动运行,并且可以通过API访问。在您的情况下,您只需要在应用程序运行时手动运行一次,它将索引您使用Liquibase插入的30,000行。

您可以修改生成的服务以删除所有其他实体的索引。有一个计划特性允许您忽略某些实体。

相关内容

  • 没有找到相关文章

最新更新