2014-09-10 3 views
0

Я новичок в поиске elasticsearch, пытаясь получить индексированные данные из elasticsearch, используя запрос, гистограмму даты, грани. У меня есть elasticsearch и kibana, которые работают правильно на сервере. Теперь я хочу вытащить определенные индексированные данные из поиска elastics и рассчитать его как графики в другом домашнем приложении (Spring web application). Поэтому подумал об использовании весенних данных elasticsearch, но нашел примеры приложений, использующих репозитории elasticsearch через Интернет.Данные весны elasticsearch - запрос

https://github.com/BioMedCentralLtd/spring-data-elasticsearch-sample-application

Пожалуйста помогите мне путь, чтобы просто вытащить данные из elasticsearch с помощью пружинного elasticsearch данных или если есть какой-либо другой лучший способ сделать это. (Я не хочу использовать объекты/репозитории, как в примере, просто нужно получить данные как строка JSON).

ответ

0

Наконец, я использовал простой клиент Elasticseach java для работы. Код ниже может быть полезен.

<bean id="esConnection" class="com.es.connection.ESConnection" scope="singleton" autowire="byName"> 
    <property name="host" value="${es.host}" /> 
    <property name="port" value="${es.port}" /> 
    <property name="clusterName" value="${es.cluster}" /> 
</bean> 

import javax.annotation.PostConstruct; 

import org.elasticsearch.client.Client; 
import org.elasticsearch.client.transport.TransportClient; 
import org.elasticsearch.common.settings.ImmutableSettings; 
import org.elasticsearch.common.settings.Settings; 
import org.elasticsearch.common.transport.InetSocketTransportAddress; 

public class ESConnection { 
    TransportClient client; 
    private String host; 
    private int port; 
    private String clusterName; 

    public ESConnection() { 

    } 

    public ESConnection(String host,int port,String clusterName) { 
     this.host = host; 
     this.clusterName = clusterName; 
     this.port = port; 

    } 

    @PostConstruct 
    public void connect() { 
     Settings settings = ImmutableSettings.settingsBuilder() 
       .put("cluster.name",clusterName) 
       .build(); 
     client = new TransportClient(settings); 
     client.addTransportAddress(new InetSocketTransportAddress(host,port));   
    } 

    public void setHost(String host) { 
     this.host = host; 
    } 

    public void setPort(int port) { 
     this.port = port; 
    } 

    public void setClusterName(String clusterName) { 
     this.clusterName = clusterName; 
    } 

    public Client getClient() { 
     return (Client) client; 
    } 

    public void close() { 
     if (client != null) { 
      client.close(); 
     } 
    } 

    @Override 
    public String toString() { 
     return String.format("%s, Host: %s, Port: %s, Cluster: %s", super.toString(), host, port, clusterName); 
    } 

} 

В Запускают слушателем,

public class StartupListener implements ServletContextListener { 

    @Autowired 
    ESConnection esConnection; 

    public void contextInitialized(ServletContextEvent sce) { 
     try { 
      ServletContext context = sce.getServletContext(); 
      context.setAttribute("esConnection", esConnection); 
     } catch (SchedulerException se) { 
     } catch (Exception e) { 
     } 
    } 

    public void contextDestroyed(ServletContextEvent sce) { 
     ServletContext context = sce.getServletContext(); 
     if (this.esConnection != null) { 
      this.esConnection.close(); 
      context.removeAttribute("esConnection"); 
     } 
    } 
} 
Смежные вопросы