我希望保持我的elasticsearch 的客户端连接处于事件状态。我一直在使用弹性客户端,并在索引和搜索其数据存储时取得了一些巨大的成功,但我希望能够创建到我的elasticsearch Node 的连接并保留该连接,这样我就不需要不断创建每次我发布到它时都会有一个新连接。
查看文档后,我发现 swagger 文档有一个保持事件状态的功能,但我使用 Nodejs 创建了我的客户端,但没有找到任何功能来做到这一点。
我的客户看起来像这样:
const client = new Client({
auth: {
username: 'aSecret',
password: 'alsoASecret',
},
node: 'localhost:9000',
maxRetries: 3,
requestTimeout: 15000,
});
我的索引现在非常简单:
await client.index({
index: 'my-datastore'
refresh: true,
body: eventData,
});
如何保持索引连接处于事件状态,以便可以将多个事件发送到我的数据存储,而无需连接和重新连接?
最佳答案
Client
的构造函数中有一个 keepAlive
配置选项。
它是一个 bool 值。 Reference
keepAlive
:与 Node 的连接是否应该永远保持打开状态?当您直接连接到 Elasticsearch 时,建议采用此行为。
var elasticsearch = require('elasticsearch');
var client = new elasticsearch.Client({
auth: {
username: 'aSecret',
password: 'alsoASecret',
},
node: 'localhost:9000',
maxRetries: 3,
requestTimeout: 15000,
keepAlive: true
});
关于node.js - 保持 Elasticsearch 连接处于事件状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68210435/