我出于 PoC 目的启动了 Jhipster,我需要通过 UI 搜索 MySQL 数据库中现有的数据。我有以下疑问:
我已经尝试通过安装它来使用 generator-jhipster-elasticsearch-reindexer 模块。但它没有按预期工作。安装后我遇到了以下错误。
java.lang.IllegalStateException:握手失败,集群名称不匹配 [集群 [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 创建实体时,它会更新 Elasticsearch 数据库并生成结果。
预期结果:当我连接到 MySQL 数据库时,能够对现有数据执行相同的搜索。
最佳答案
Jhipster 已经在他们的网站上解释了如何使用 elasticsearch:
https://www.jhipster.tech/using-elasticsearch/
以下是您问题的简短答案:
1. 如果您在 dev profile 中运行您的应用程序,则无需安装 elasticsearch,因为它使用嵌入式 Elasticsearch 实例。
2. 您必须在创建 Jhipster 应用程序时选择打开 Elasticsearch,以便生成器将搜索功能添加到您的代码中。
generator-jhipster-elasticsearch-reindexer 模块仅在您在应用程序中启用 Elasticsearch 时才有效。
关于spring - 通过 Jhipster 中的 UI 使用 Elasticsearch 对现有数据库 MySQL 执行搜索操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56770900/