当前位置: 首页 > 知识库问答 >
问题:

spring boot+hibernate search+elastic search embedded启动失败

羊舌自强
2023-03-14

我很难在spring boot设置中使用弹性搜索后端设置hibernate seach。

我拥有的是spring boot和以下依赖项。

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-elasticsearch</artifactId>
    <version>1.4.0.M3</version>
</dependency>

<dependency>
    <groupId>org.hibernate</groupId>
        <artifactId>hibernate-search-backend-elasticsearch</artifactId>
        <version>5.6.0.Alpha3</version>
</dependency>
spring:
   data:
      elasticsearch:
         properties:
            http:
               enabled: true

现在,我在这里如何定义依赖关系?

我尝试使用自定义BeanFactoryPostProcessor来注入对弹性搜索的依赖,但在自动配置场景中似乎忽略了这一点。

有没有办法引入一个等待,直到弹性搜索开始?

理想情况下,弹性搜索应该托管在jvm外部,但在测试场景中很方便。

共有1个答案

安经纶
2023-03-14

我知道这是您在集成测试中遇到的一个问题。

您可以了解如何在Hibernate Search本身的集成测试中启动ES,使用Maven插件确保在测试之前启动服务器:-https://github.com/Hibernate/hibernate-search/blob/5.6.0.beta1/ellasticsearch/pom.xml#L341-L368

N.B.这使用了自定义的ES配置,即使它只是一个节点集群,也可以快速启动:-https://raw.githubusercontent.com/hibernate/hibernate-search/5.6.0.beta1/elasticsearch/elasticsearchconfiguration/elasticsearch.yml

Hibernate Search使用Jest客户机连接到ES,因此需要启用ES的HTTP连接器:不要将此与NodeClient混淆,后者是一种不同的操作模式。

如果您的问题与自动化测试无关,而是与生产集群相关,那么我建议使用像Kubernetes这样的服务编排器。

 类似资料:
  • 从文件夹内部执行“npm start”命令时出现以下错误/ 我在互联网上尝试了多种解决方案,但都无效。

  • 我通过pgAdmin III与远程postgres-9.3连接。关闭pgAdmin后,我尝试在另一天与同一数据库连接。 在pgstartup.log文件中,我有: pg_hba.conf: 服务器上的操作系统是CentOS。不幸的是,我不知道postgres是如何安装在服务器上的,因为有人这样做了。我能用这个做什么?

  • 当前的java版本是

  • 启动Tomcat失败,请检查C:\Program Files\Apache Software Foundation\Apache Tomcat 8.0.27\bin\catalina。bat和相关脚本是可执行的。 一直有这个问题在netbean。如何解决问题?请帮忙。

  • 我下载了Scene Builder,试图打开一个.fxml文件,但出现了以下错误消息: 启动SceneBuilder失败。错误消息是:无法运行程序“C:\program Files(x86)\Oracle\JavaFX Scene Builder 2.0”:CreateProcess error=5,Acces被拒绝

  • 现象1 启动后报错类似如下: php start.php start PHP Warning: stream_socket_server(): unable to connect to tcp://xx.xx.xx.xx:xxxx (Address already in use) in ...workerman/Worker.php on line xxxx 关键字: Address alre

  • 23.1 启动失败 如果您的程序无法启动,已经注册的FailureAnalyzers就有机会提供专门的错误信息以及具体的操作来解决问题。例如,如果您在端口8080上启动Web应用程序,并且该端口已被使用,那么您应该看到类似于以下的内容: *************************** APPLICATION FAILED TO START *************************

  • Spring Boot版本为1.5.6 使用的数据库是SQL Server2016,它也是在docker(windows容器)上。 问题:每当我重新启动SQL DB容器时,应用程序开始给出这个错误。 任何想法可以做什么来解决这个问题。 多谢了。