标签:jhipster elasticsearch postgresql liquibase java
我有一个由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());
}
但是我只想执行一次,而不是每次应用程序启动时都这样做.
这些数据是“静态的”(3万行),所以这就是为什么我想继续使用sql文件加载它们的原因.
有更好的方法做到这一点,还是我必须坚持下去?
问候
解决方法:
在这里尝试我的项目:
https://github.com/geraldhumphries/generator-jhipster-elasticsearch-reindexer
这将生成一项服务,使您可以将Elasticsearch与数据库同步.它与您的实现非常相似,但是需要由管理员用户手动运行,并且可以通过您的API进行访问.对于您的情况,您只需要在应用程序运行时手动运行一次,它将为您使用Liquibase插入的30,000行编制索引.
您可以修改生成的服务以删除所有其他实体的索引.有一项计划的功能,可让您忽略某些实体.
标签:jhipster,elasticsearch,postgresql,liquibase,java 来源: https://codeday.me/bug/20191118/2026811.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。