2013-07-06 15 views
7

Voglio gestire l'avvio e l'arresto di elasticsearch da Java. C'è un modo facile/bello per fare questo?avvio istanza elasticsearch da java?

Stiamo provando a distribuire ElasticSearch nel nostro prodotto e vogliamo mantenere l'istanza di ElasticSearch sulla macchina del nostro cliente nel nostro prodotto, e in questo momento ogni cosa dipende dall'avere un'istanza di ElasticSearch avviata da es.bat o qualcosa.

Come parte, qualcuno può darmi un esempio di come testare un po 'di codice attorno all'API Jest per ElasticSearch, così posso testare le nostre cose che chiamano ElasticSearch senza dover avviare un'istanza di ElasticSearch?

risposta

10

L'avvio di un'istanza elasticsearch è estremamente semplice. Devi solo usare il Java API. Ciò significa che si deve aggiungere la dipendenza elasticsearch al progetto e creare un nodo, come indicato nel reference:

// on startup 
Node node = nodeBuilder().node(); 
Client client = node.client(); 

// on shutdown 
node.close(); 

Una volta creato il nodo si comporterà esattamente come un nodo avviato dalla riga di comando. È possibile interagire con l'oggetto client creato, ma per impostazione predefinita aprirà anche le porte 9200 e 9300 (o successive se occupate) per le chiamate di riposo e la comunicazione tra nodi.

+0

Grazie per la risposta. Avevo pensato che fosse necessario un ElasticSearch avviato per connettersi ad esso, quindi Client, ma costruire il nodo ha senso ... fantastico! Sarò in grado di provarlo presto. Sono contento che sia più facile di quanto pensassi. – cdietschrun

+1

Ti vedrai quanto è facile :) Potresti voler cambiare/accettare la tua risposta dopo esserti assicurato che fosse utile. ;) – javanna

+0

Se non si dispone dell'importazione statica, NodeBuilder.nodeBuilder() – akroy