2014-08-27 28 views
8

spring-boot-sample-data-elastcisearch projesiyle çalışıyorum. ben pom değişti ve ekledik:Yerel e-posta yoluyla erişilebilen elasticsearch nasıl yapılır: 9200

SampleElasticsearchApplicationWebXml extends SpringBootServletInitializer 

Tomcat gömülü ile çalıştırın. elasticsearch-kafa veya diğer JS istemcisi kullanmak için 9200: Benim application.properties ben localhost bağlanmak isterler

spring.data.elasticsearch.http-enabled=true 
spring.data.elasticsearch.local=true 

sahiptir. Neyi kaçırıyorum? sayesinde Milan

+0

Sen bahar elasticsearch müşteri için belgeleri okuyarak deneyebilirsiniz. Esnek aramaya bağlanmanın çeşitli yollarını destekliyor gibi görünüyor. Elasticsearch özelliklerinin, istediklerinizi sihirli bir şekilde yapmasına neden olacağından kuşku duyuyorum. Eğer gömülü elasticsearch başlatmak istiyorsanız, muhtemelen bunu kendiniz yapmanız gerekir. Bunun için elasticsearch belgelerini okuyun. Gömülü bir istemci düğümü çalıştırmayı gerçekten destekliyorlar ancak ihtiyaç duymadığından dolayı http iletimini başlatacaklarından şüpheliyim. Bağlanmak için uygun bir elasticsearch düğümüne ihtiyacınız olacaktır. –

cevap

7

NodeClientFactoryBeanhttp.enabled için bir seçenek vardır ancak (henüz) ElasticSearchAutoConfiguration yapar çünkü kendin için tanımlamalıdır ayarlayın.

@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

Teşekkürler, ben bahar önyükleme ElasticSearchAutoConfiguration yeniden yazma sona erdi ve çalışır. –

+0

Başlangıç ​​seviyenizdeki ElasticsearchAutoConfiguration '@EnableAutoConfiguration (exclude = {ElasticsearchAutoConfiguration.class})' işlevini devre dışı bırakmayı unutmayın ('main'-method ile sınıf). Aksi halde önyükleme iki düğüm başlatır! – einsA

15

this ticket göre, artık sadece konfigürasyon dosyalarına bu satırı ekleyebilirsiniz:

spring.data.elasticsearch.properties.http.enabled=true