2017-04-03 98 views
0

我试图使用npm包elasticsearch创建索引,并且已经收到以下错误。'为uri [/ myindex]和方法[POST]找到没有处理程序'Elasticsearch 5.0.3 with nodejs esclient

'找到的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]' ] 
+0

你能不能也告诉你如何建立你的' esClient'? – Val

+0

var esClient = new elasticsearch.Client({host:config.es.host, log:'error' }); –

+0

你是否更新过JavaScript客户端? – Val

回答

0

您还需要更新您的JavaScript客户端,并使用0来实例化它

var esClient = new elasticsearch.Client({ 
    host: config.es.host, 
    log: 'error', 
    apiVersion: '5.0' 
}); 

这样做的原因是,随着ES 5.0则无法使用POST HTTP方法来创建新的索引,但只能用PUT方法

+0

非常感谢。有效 :)。 –

+0

太棒了,很高兴它解决了! – Val

相关问题