WARNING: Version 5.x has passed its EOL date.
This documentation is no longer being maintained and may be removed. If you are running this version, we strongly advise you to upgrade. For the latest information, see the current release documentation.
transport.request
edittransport.request
editIt can happen that you need to communicate with Elasticsearch by using an API that is not supported by the client, to mitigate this issue you can directly call client.transport.request
, which is the internal utility that the client uses to communicate with Elasticsearch when you use an API method.
When using the transport.request
method you must provide all the parameters needed to perform an HTTP call, such as method
, path
, querystring
, and body
.
If you find yourself use this method too often, take in consideration the use of client.extend
, which will make your code look cleaner and easier to maintain.
'use strict' const { Client } = require('@elastic/elasticsearch') const client = new Client({ node: 'http://localhost:9200' }) async function run () { const { body: bulkResponse } = await client.bulk({ refresh: true, body: [ { index: { _index: 'game-of-thrones' } }, { character: 'Ned Stark', quote: 'Winter is coming.' }, { index: { _index: 'game-of-thrones' } }, { character: 'Daenerys Targaryen', quote: 'I am the blood of the dragon.' }, { index: { _index: 'game-of-thrones' } }, { character: 'Tyrion Lannister', quote: 'A mind needs books like a sword needs a whetstone.' } ] }) if (bulkResponse.errors) { console.log(bulkResponse) process.exit(1) } const { body } = await client.transport.request({ method: 'POST', path: '/game-of-thrones/_search', body: { query: { match: { quote: 'winter' } } }, querystring: {} }) console.log(body) } run().catch(console.log)