How to make elasticsearch embedded accessible via localhost:9200

后端 未结 2 1777
北荒
北荒 2021-02-20 12:26

I am playing with spring-boot-sample-data-elastcisearch project. I\'ve changed the pom and added:

SampleElasticsearchApplicationWebXml extends SpringBootServletI         


        
相关标签:
2条回答
  • 2021-02-20 13:07

    According to this ticket, you can now simply add this line to your configuration files:

    spring.data.elasticsearch.properties.http.enabled=true
    
    0 讨论(0)
  • 2021-02-20 13:17

    you should define this for yourself, because NodeClientFactoryBean has an option for http.enabled but ElasticSearchAutoConfiguration does not (yet) set it.

    @Configuration
    @EnableConfigurationProperties(ElasticsearchProperties.class)
    public class ElasticsearchConfiguration implements DisposableBean {
    
        private static Log logger = LogFactory.getLog(ElasticsearchConfiguration.class);
    
        @Autowired
        private ElasticsearchProperties properties;
    
        private NodeClient client;
    
        @Bean
        public ElasticsearchTemplate elasticsearchTemplate() {
            return new ElasticsearchTemplate(esClient());
        }
    
        @Bean
        public Client esClient() {
            try {
                if (logger.isInfoEnabled()) {
                    logger.info("Starting Elasticsearch client");
                }
                NodeBuilder nodeBuilder = new NodeBuilder();
                nodeBuilder
                        .clusterName(this.properties.getClusterName())
                        .local(false)
                ;
                nodeBuilder.settings()
                        .put("http.enabled", true)
                ;
                this.client = (NodeClient)nodeBuilder.node().client();
                return this.client;
            }
            catch (Exception ex) {
                throw new IllegalStateException(ex);
            }
        }
    
        @Override
        public void destroy() throws Exception {
            if (this.client != null) {
                try {
                    if (logger.isInfoEnabled()) {
                        logger.info("Closing Elasticsearch client");
                    }
                    if (this.client != null) {
                        this.client.close();
                    }
                }
                catch (final Exception ex) {
                    if (logger.isErrorEnabled()) {
                        logger.error("Error closing Elasticsearch client: ", ex);
                    }
                }
            }
        }
    }
    
    0 讨论(0)
提交回复
热议问题