2016-08-23 9 views
2

JHipster 3.0.0で生成されたプロジェクトがあり、検索エンジンとしてelasticsearchを使用しています。Elasticsearchがliquibaseによって読み込まれたデータで動作しない

私はliquibaseを使用して1つのテーブルにデータをロードしていますが、私はelasticsearchを使用してこれらのデータをクエリできません.LequibaseによってロードされたデータでDataSearchRepositoryでsave()メソッドを呼び出すことはありません。私はLiquiBaseをXMLファイルにデータをロードしていますか

は、これは次のとおりです。

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

今のところ、私はすべてのデータをロードしDataSearchRepositoryを使用してそれらを保存し、アプリケーションの起動時:

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

しかし、私はそれを1回だけしたいと思います。アプリケーションが起動するたびにではありません。

これらのデータは「静的」(30 000行)なので、SQLファイルをロードするためにSQLファイルを使い続けたいのです。

これを行うには良い方法があるのでしょうか、自分のやり方に固執する必要がありますか?

よろしく

答えて

2

ここに私のプロジェクトを試してみてください: https://github.com/geraldhumphries/generator-jhipster-elasticsearch-reindexer

をこれはあなたのデータベースとElasticsearchを同期することを可能にするサービスを生成します。実装に非常に似ていますが、管理者が手動で実行する必要があり、API経由でアクセスできます。あなたのアプリケーションでは、アプリケーションの実行中に手動で一度だけ実行する必要があり、Liquibaseを使用して挿入した30,000行のインデックスを作成します。

生成されたサービスを変更して、他のすべてのエンティティのインデックス作成を削除することができます。特定のエンティティを無視できるようにする予定の機能があります。

関連する問題