如何通过本地主机:9200使Elasticsearch嵌入式访问

我正在玩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尚未设置。

@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);

}

}

}

}

}

以上是 如何通过本地主机:9200使Elasticsearch嵌入式访问 的全部内容, 来源链接: utcz.com/qa/413065.html

回到顶部