'Не найден обработчик для uri [/myindex] и метода [POST]' Elasticsearch 5.0.3 с эсклиентом nodejs
Я пытаюсь создать индекс с использованием пакета упорядочивания npm и получаю следующую ошибку.
"Не найден обработчик для uri [/myindex] и метода [POST]"
esClient.indices.create({
index: 'myindex'
}, function(err, resp, status) {
cb(err, resp);
});
Следующий код работал для Elasticsearch 2.3
Вот журнал
Elasticsearch DEBUG: 2017-04-03T13:54:24Z
starting request { method: 'POST', path: '/myindex1', query: {} }
Elasticsearch TRACE: 2017-04-03T13:54:24Z
-> POST http://localhost:9200/myindex1
<- 400
No handler found for uri [/myindex1] and method [POST]
Elasticsearch DEBUG: 2017-04-03T13:54:24Z
Request complete
{ Error: Bad Request
at respond (/Users/Ut/Fitternity/metropolis/node_modules/elasticsearch/src/lib/transport.js:293:15)
at checkRespForFailure (/Users/Ut/Fitternity/metropolis/node_modules/elasticsearch/src/lib/transport.js:252:7)
at HttpConnector.<anonymous> (/Users/Ut/Fitternity/metropolis/node_modules/elasticsearch/src/lib/connectors/http.js:155:
7)
at IncomingMessage.wrapper (/Users/Ut/Fitternity/metropolis/node_modules/elasticsearch/node_modules/lodash/index.js:3095
:19)
at emitNone (events.js:91:20)
at IncomingMessage.emit (events.js:185:7)
at endReadableNT (_stream_readable.js:926:12)
at _combinedTickCallback (internal/process/next_tick.js:74:11)
at process._tickDomainCallback (internal/process/next_tick.js:122:9)
status: 400,
displayName: 'BadRequest',
message: 'Bad Request' } 'No handler found for uri [/myindex1] and method [POST]' 400
[ 'No handler found for uri [/myindex1] and method [POST]' ]
1 ответ
Решение
Вам также необходимо обновить клиент JavaScript и создать его экземпляр с помощью apiVersion
параметр установлен в5.0
var esClient = new elasticsearch.Client({
host: config.es.host,
log: 'error',
apiVersion: '5.0'
});
Причина этого в том, что в ES 5.0 невозможно создать новый индекс, используя POST
HTTP-метод, но только с PUT
метод