Hibernate search with multiple data bases

Hi everyone,

I’m working on a microservice architecture that utilizes Hibernate Search with an Elasticsearch backend. Only the local entity is indexed.

Here’s the relevant configuration from my application YAML file:

spring:
  autoconfigure:
    exclude: org.springframework.boot.autoconfigure.elasticsearch.ElasticsearchRestClientAutoConfiguration
  application:
    name: virtualDealRoom-service
  jpa:
    open-in-view: false
    generate-ddl: true
    properties:
      hibernate:
        dialect: org.hibernate.dialect.PostgreSQLDialect
        search:
          backend:
            analysis:
              configurer: com.afreximbank.canex.virtualDealRoom.service.config.search.AnalysisConfigurer
            uris:
            username: ${ELASTIC_USERNAME:elastic}
            password: ${ELASTIC_PASSWORD:elastic}
            type: elasticsearch

I’m encountering an error when running the application. It seems to be trying to connect to Elasticsearch at “http://localhost:9200” and failing with a connection refused error. Here’s the error message:

2025-01-04 09:03:41 2025-01-04T06:03:41.414Z DEBUG 1 --- [virtualDealRoom-service] [port thread - 0] [                                                 ] org.elasticsearch.client.RestClient      : request [GET http://localhost:9200/] failed
2025-01-04 09:03:41 
2025-01-04 09:03:41 java.net.ConnectException: Connection refused
2025-01-04 09:03:41     at java.base/sun.nio.ch.Net.pollConnect(Native Method) ~[na:na]
2025-01-04 09:03:41     at java.base/sun.nio.ch.Net.pollConnectNow(Net.java:682) ~[na:na]
2025-01-04 09:03:41     at java.base/sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:973) ~[na:na]
2025-01-04 09:03:41     at org.apache.http.impl.nio.reactor.DefaultConnectingIOReactor.processEvent(DefaultConnectingIOReactor.java:174) ~[httpcore-nio-4.4.16.jar:4.4.16]
2025-01-04 09:03:41     at org.apache.http.impl.nio.reactor.DefaultConnectingIOReactor.processEvents(DefaultConnectingIOReactor.java:148) ~[httpcore-nio-4.4.16.jar:4.4.16]
2025-01-04 09:03:41     at org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor.execute(AbstractMultiworkerIOReactor.java:351) ~[httpcore-nio-4.4.16.jar:4.4.16]
2025-01-04 09:03:41     at org.apache.http.impl.nio.conn.PoolingNHttpClientConnectionManager.execute(PoolingNHttpClientConnectionManager.java:221) ~[httpasyncclient-4.1.5.jar:4.1.5]
2025-01-04 09:03:41     at org.apache.http.impl.nio.client.CloseableHttpAsyncClientBase$1.run(CloseableHttpAsyncClientBase.java:64) ~[httpasyncclient-4.1.5.jar:4.1.5]
2025-01-04 09:03:41     at java.base/java.lang.Thread.run(Thread.java:1583) ~[na:na]
2025-01-04 09:03:41 
2025-01-04 09:03:41 2025-01-04T06:03:41.419Z DEBUG 1 --- [virtualDealRoom-service] [port thread - 0] [                                                 ] org.elasticsearch.client.RestClient      : added [[host=http://localhost:9200]] to blacklist

Key Points:

  • The Elasticsearch host isn’t explicitly specified in my application YAML configuration, yet it’s attempting to connect to “localhost:9200”.
  • Indexing works smoothly with a single data source but fails with multiple data sources.
  • The application functions perfectly when deployed in an environment where Elasticsearch is available at “http://localhost:9200”.

I’d appreciate some assistance in resolving this issue.

Hey,

The Elasticsearch host isn’t explicitly specified in my application

hibernate.search.backend.hosts
The default for this property is localhost:9200 .

See Hibernate Search 7.2.2.Final: Reference Documentation

you have to configure the connection to the ES cluster, as otherwise how would Hibernate Search connect to it?

you probably should provide more information on this as it’s unclear what exactly are you trying to do and what’s failing.

hello here is my configuration

spring:
  autoconfigure:
    exclude: org.springframework.boot.autoconfigure.elasticsearch.ElasticsearchRestClientAutoConfiguration
  application:
    name: virtualDealRoom-service
  jpa:
    open-in-view: false
    generate-ddl: true
    properties:
      hibernate:
        dialect: org.hibernate.dialect.PostgreSQLDialect
        search:
          backend:
            analysis:
              configurer: com.afreximbank.canex.virtualDealRoom.service.config.search.AnalysisConfigurer
            hosts: elasticsearch:9200
            username: ${ELASTIC_USERNAME:elastic}
            password: ${ELASTIC_PASSWORD:elastic}
            type: elasticsearch
            health_check: false