Elasticsearch-Назначение Осколков


Я недавно открыл для себя Elasticsearch и решил поиграть. К сожалению, у меня возникли проблемы с добавлением индексов.

Код, используемый для добавления индекса, выглядит следующим образом и запускается при каждой попытке добавления нового индекса:

 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();
     }
 }

Индексы не добавляются, и мой кластер helath в настоящее время красный (так как один из осколков красный), но я понятия не имею, как это решить. Я получаю подтверждение, что мой индекс добавляется каждый раз, но они не появляются при поиске или в es-admin.

Любая помощь или идеи высоко ценятся.

1 9

1 ответ:

При запуске узла одна из распространенных настроек, которую следует учитывать, должна ли она содержать данные или нет. Другими словами, ему должны быть присвоены индексы и осколки. Много раз мы хотели бы, чтобы клиенты были просто клиентами, без выделения им осколков [1].

Если вы хотите, чтобы ваш клиент был клиентом без данных (без осколков), попробуйте настроить его так, заменив это:

node = nodeBuilder().node();

С этим:

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

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