【问题标题】:Elasticsearch not working with data loaded by liquibaseElasticsearch 无法处理 liquibase 加载的数据
【发布时间】:2016-12-30 19:14:00
【问题描述】:

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

我正在使用 liquibase 将数据加载到一个表中,但我无法使用 elasticsearch 查询这些数据,因为我从未使用 liquibase 加载的数据调用 DataSearchRepository 上的 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 文件来加载它们。

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

问候

【问题讨论】:

    标签: java postgresql elasticsearch liquibase jhipster


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多