从 Node 请求 Elasticsearch 超时

新手上路,请多包涵

我正在设置一个简单的 Node.js REST 服务以使用官方 Javascript 客户端与 Elasticsearch 交互。我在本地运行此代码,但集群位于远程位置。当我通过浏览器时,使用 _head 插件,我可以毫无问题地连接 ES 和查询。但是,通过 Javascript 客户端执行此操作会使所有请求超时。我设置了 ElasticSearch 对象,但向它发送任何请求根本不起作用。我认为这不是网络问题,因为我可以通过浏览器访问 ES。这就是我请求东西的方式,一个非常基本的 get:

 var elasticsearch = require("elasticsearch");
var es = new elasticsearch.Client({
    host: "https://my-address:9200/", // also tried without protocol part and trailing slashes
    log: "error",
    sniffOnStart: true
});

es.get({
    index: "things",
    type: "someThing",
    id: "42"
}).then(doSomeStuff, handleStuffFailed);

这失败并显示一条简单的错误消息 Errror: Request timeout after 30000ms.

我在这里错过了什么吗?我已经阅读了客户端文档,这似乎是客户端的基本“hello world”。

原文由 Kroltan 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 437
1 个回答

尝试在实例化 ES Client 时扩展 requestTimeout 参数。

 client = new elasticsearch.Client({
        host          : 'http://localhost:9200',
        requestTimeout: 60000
    });

我有一个耗时不到 10 分钟的长时间运行过程。通过将 requestTimeout 值设置为 60000(10 分钟),该过程可以在不超时的情况下完成。

原文由 Lorien 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏