使用Nodejs的Elasticsearch索引速度



我有一个包含大量文档的Elasticsearch标记。到目前为止,我一直在Node.js中使用javascript。我做了一个cron作业,每24小时运行一次,根据元数据的变化单独更新文档。正如你们中的一些人可能知道的,这可能是最慢的方法。在Elasticsearch上使用单独索引的单线程Node.js。当我运行cron作业时,它以蜗牛般的速度运行。我可以每1.5-2秒更新一次文档。这意味着更新所有文档大约需要27个小时。我使用的是一个免费的AWS ES实例,所以我无法访问某些可以帮助我加快进程的功能。

有人知道加快索引的方法吗?如果我要调用批量更新,这将如何在javascript中体现?如果我用另一种语言来多线程它,最快的选择是什么?

我不理解你的问题"如果我要调用批量更新,这将如何在javascript中体现&";。

无论使用何种语言/框架,批量更新都应该是最佳解决方案。当然,您可以探索Ruby等其他语言,利用线程使批量更新更加分布式和快速。

根据经验,批量大小为b/w 4-7k的批量更新效果不错。您可能需要在此范围内微调大小。

确保refresh_interval的值设置为非常大的值。这将确保文件不会经常编入索引。IMO默认值也可以。点击此处了解更多信息。

最新更新