2011-04-13 14 views
9

Recientemente descubrí Elasticsearch y decidí jugar. Lamentablemente, tengo problemas para agregar índices.Elasticsearch - Asignar fragmentos

El código utilizado para añadir un índice es el siguiente y se ejecuta cada vez que un nuevo índice se intenta que se añade:

public void index (String index, String type, String id, String json){ 
    Node node = null; 
    try{ 
     node = nodeBuilder().node(); 
     Client client = node.client(); 
     IndexResponse response = client.prepareIndex(index, type, id) 
     .setSource(json) 
     .execute() 
     .actionGet(); 
    } 
    catch (Exception e){ 
     Logger.error(e, " Error indexing JSON file: " + json); 
    } 
    finally { 
     if(node != null) 
      node.close(); 
    } 
} 

No aparece ninguna índices que se añade y mi helath Cluster es actualmente rojo (como uno de los fragmentos es rojo), pero no tengo idea de cómo resolver esto. Recibo confirmación de que mi índice se agrega cada vez pero no aparece cuando se busca o en es-admin.

Toda ayuda o ideas son muy apreciadas.

Respuesta

4

Al iniciar un nodo, una de las configuraciones comunes a considerar es si debe contener datos o no. En otras palabras, deberían asignarse índices y fragmentos. Muchas veces nos gustaría que los clientes solo sean clientes, sin que se les asignen fragmentos [1].

Si desea configurar el cliente como un cliente que no sea de datos (no hay fragmentos) Inténtelo como tal por la sustitución de éste:

node = nodeBuilder().node(); 

con esto:

node = nodeBuilder().client(true).node(); 

[1] http://www.elasticsearch.org/guide/reference/java-api/client.html