我为PoC目的启动了Jhipster,我需要通过UI搜索MySQL数据库中已经存在的数据。我有以下疑问:
我已经尝试通过安装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数据库时,能够对已经存在的数据执行相同的搜索。
答案 0 :(得分:1)
Jhipster已经在其网站上解释了如何与elasticsearch配合使用: https://www.jhipster.tech/using-elasticsearch/
以下是您的问题的简短答案: 1.如果您在开发配置文件中运行您的应用程序,则无需安装elasticsearch,因为它使用嵌入式Elasticsearch实例。 2.创建Jhipster应用程序时,必须选择“打开Elasticsearch”,以便生成器将搜索功能添加到代码中。
仅当您在应用中启用了Elasticsearch时,generator-jhipster-elasticsearch-reindexer模块才起作用。