我正在玩spring-boot-sample-data-elastcisearch项目。我更改了pom并添加了:
SampleElasticsearchApplicationWebXml extends SpringBootServletInitializer
与嵌入式Tomcat一起运行。我的application.properties有
spring.data.elasticsearch.http-enabled=true spring.data.elasticsearch.local=true
我希望能够连接到localhost:9200以便使用elasticsearch-head或其他JS客户端。我想念什么?谢谢米兰
您应该自己定义它,因为NodeClientFactoryBean有一个选项,http.enabled但是ElasticSearchAutoConfiguration尚未设置。
http.enabled
@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); } } } } }