Ste*_*ven 7 java elasticsearch jhipster spring-data-elasticsearch
所以,又回来了
我有一个JHipster生成的项目,它使用elasticsearch java嵌入的客户端spring boot.
我最近对数据集做了一些重大更改,因为我们一直在从不同的存储库迁移一大堆新数据
部署应用程序时,一切正常,所有SearchRepositories加载都没有问题,所有搜索功能都顺利进行
从测试环境运行时会出现问题.对application-test.yml文件和elasticsearchjava配置文件没有任何改变.
我们有一些更新索引的代码,我已经运行了好几次,它似乎更新了clusters indices就好了,但我痛苦的地方在target文件夹中,它只是不会创建新的索引
在测试模式下运行时,有12个索引无法进入目标文件夹,但是ResourceIntTest由于标题中提到的错误,其中只有5个失败了
我不想用数百个不相关的代码行填写这篇文章,所以现在只需包含有助于测试不会失败的变通方法:
在initTest5个失败的测试用例中,如果我写下面的行(显然在每个不同的情况下更改类名):
surveyDataQualitySearchRepository.save(surveyDataQualityRepository.findAll());
Run Code Online (Sandbox Code Playgroud)
然后索引将创建自己并且测试用例不会失败,但是这不需要手动执行,应该在部署时调用类中的resetIndex方法时创建它IndexReinitializer
resetIndex:
@PostConstruct
public void resetIndex() {
long t = currentTimeMillis();
elasticsearchTemplate.deleteIndex("_all");
t = currentTimeMillis() - t;
logger.debug("ElasticSearch indexes reset in {} ms", t);
}
Run Code Online (Sandbox Code Playgroud)
注释这段代码也允许加载所有索引,但是不应该对它进行评论,因为它可以作为索引的更新程序,而且它在仍然指向旧数据集的旧版本应用程序中工作正常.
所有的帮助将非常受欢迎,我已经在这几乎整整一天,现在试图了解错误的来源,我也非常乐意上传任何可能与愿意帮助的人相关的代码片段这里.
编辑通过注释为索引重建添加代码
@Test
public void synchronizeData() throws Exception{
resetIndex();
activePharmaIngredientSearchRepository.save(activePharmaIngredientRepository.findAll());
countrySearchRepository.save(countryRepository.findAll());
dosageUnitSearchRepository.save(dosageUnitRepository.findAll());
drugCategorySearchRepository.save(drugCategoryRepository.findAll());
drugQualityCategorySearchRepository.save(drugQualityCategoryRepository.findAll());
formulationSearchRepository.save(formulationRepository.findAll());
innDrugSearchRepository.save(innDrugRepository.findAll());
locationSearchRepository.save(locationRepository.findAll());
manufacturerSearchRepository.save(manufacturerRepository.findAll());
outletTypeSearchRepository.save(outletTypeRepository.findAll());
publicationSearchRepository.save(publicationRepository.findAll());
publicationTypeSearchRepository.save(publicationTypeRepository.findAll());
qualityReferenceSearchRepository.save(qualityReferenceRepository.findAll());
reportQualityAssessmentAssaySearchRepository.save(reportQualityAssessmentAssayRepository.findAll());
//rqaaQualitySearchRepository.save(rqaaQualityRepository.findAll());
rqaaTechniqueSearchRepository.save(rqaaTechniqueRepository.findAll());
samplingTypeSearchRepository.save(samplingTypeRepository.findAll());
//surveyDataQualitySearchRepository.save(surveyDataQualityRepository.findAll());
surveyDataSearchRepository.save(surveyDataRepository.findAll());
techniqueSearchRepository.save(techniqueRepository.findAll());
tradeDrugApiSearchRepository.save(tradeDrugApiRepository.findAll());
tradeDrugSearchRepository.save(tradeDrugRepository.findAll());
publicationDrugTypesSearchRepository.save(publicationDrugTypesRepository.findAll());
wrongApiSearchRepository.save(wrongApiRepository.findAll());
}
private void resetIndex() {
long t = currentTimeMillis();
elasticsearchTemplate.deleteIndex("_all");
t = currentTimeMillis() - t;
logger.debug("ElasticSearch indexes reset in {} ms", t);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1278 次 |
| 最近记录: |