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 ответ:
При запуске узла одна из распространенных настроек, которую следует учитывать, должна ли она содержать данные или нет. Другими словами, ему должны быть присвоены индексы и осколки. Много раз мы хотели бы, чтобы клиенты были просто клиентами, без выделения им осколков [1].
Если вы хотите, чтобы ваш клиент был клиентом без данных (без осколков), попробуйте настроить его так, заменив это:
node = nodeBuilder().node();
С этим:
node = nodeBuilder().client(true).node();
[1] http://www.elasticsearch.org/guide/reference/java-api/client.html