transport.request
编辑transport.request编辑
您可能需要使用客户端不支持的 API 与 Elasticsearch 通信,为了解决此问题,您可以直接调用 client.transport.request
,这是客户端在使用 API 方法时与 Elasticsearch 通信的内部实用程序。
使用 transport.request
方法时,您必须提供执行 HTTP 调用所需的所有参数,例如 method
、path
、querystring
和 body
。
如果您发现自己经常使用此方法,请考虑使用 client.extend
,这将使您的代码看起来更简洁,更容易维护。
'use strict' const { Client } = require('@elastic/elasticsearch') const client = new Client({ cloud: { id: '<cloud-id>' }, auth: { apiKey: 'base64EncodedKey' } }) async function run () { const bulkResponse = await client.bulk({ refresh: true, operations: [ { 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 response = await client.transport.request({ method: 'POST', path: '/game-of-thrones/_search', body: { query: { match: { quote: 'winter' } } }, querystring: {} }) console.log(response) } run().catch(console.log)