使用弹性搜索现有数据库MySQL通过Jhipster中的UI执行搜索操作

时间:2019-06-26 10:41:24

标签: spring elasticsearch jhipster

我为PoC目的启动了Jhipster,我需要通过UI搜索MySQL数据库中已经存在的数据。我有以下疑问:

  1. 我们是否需要安装/具有弹性搜索才能首先运行它并检查结果?
  2. 还是在创建Jhipster应用程序并对其进行配置时选择弹性搜索足以继续使用它?

我已经尝试通过安装generator-jhipster-elasticsearch-reindexer模块来使用它。但是它没有按预期工作。安装后,出现以下错误。

java.lang.IllegalStateException:握手失败,集群名称不匹配[Cluster [internal-test-cluster-name2843e241-29cc-4bc0-82db-600eb78ed261]]-{127.0.0.1:9300}{pbkSwq2SQ-CTopOjTqsVcg}{127.0 .0.1} {127.0.0.1:9300}         在org.elasticsearch.transport.TransportService.handshake(TransportService.java:404)         在org.elasticsearch.transport.TransportService.handshake(TransportService.java:367)         在org.elasticsearch.discovery.zen.UnicastZenPing $ PingingRound.getOrConnect(UnicastZenPing.java:366)         在org.elasticsearch.discovery.zen.UnicastZenPing $ 3.doRun(UnicastZenPing.java:471)         在org.elasticsearch.common.util.concurrent.ThreadContext $ ContextPreservingAbstractRunnable.doRun(ThreadContext.java:723)         在org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:37)         在java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)         在java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:624)         在java.lang.Thread.run(Thread.java:748)

通过在application-dev.yml中添加sprig.data.jest.uri解决了上述错误,但搜索机制仍然无法正常工作。即,它无法在现有数据库上进行查询。

实际结果:当我从UI创建实体时,能够从UI执行搜索。原因是当一个实体通过API创建时,它正在更新弹性搜索数据库并产生结果。 预期结果:当我连接到MySQL数据库时,能够对已经存在的数据执行相同的搜索。

1 个答案:

答案 0 :(得分:1)

Jhipster已经在其网站上解释了如何与elasticsearch配合使用: https://www.jhipster.tech/using-elasticsearch/

以下是您的问题的简短答案: 1.如果您在开发配置文件中运行您的应用程序,则无需安装elasticsearch,因为它使用嵌入式Elasticsearch实例。 2.创建Jhipster应用程序时,必须选择“打开Elasticsearch”,以便生成器将搜索功能添加到代码中。

仅当您在应用中启用了Elasticsearch时,generator-jhipster-elasticsearch-reindexer模块才起作用。