Elasticsearch文档的最大大小是多少?

阿西莫夫4

我阅读了有关Lucene限制2Gb文档的说明。在Elasticsearch中可以建立索引的文档大小是否还有其他限制?

乌察夫黎明

Lucene内部使用一个字节缓冲区,该缓冲区使用32位整数进行寻址。根据定义,这限制了文档的大小。因此,理论上最大2GB。

在ElasticSearch中:

max http request sizeES GitHub代码中有一个,并将其设置为Integer.MAX_VALUE2^31-1因此,基本上,2GB是通过HTTP进行批量索引的最大文档大小此外,ES不会处理HTTP请求,直到它完成为止。

良好做法:

  • 如果可以帮助,请不要使用非常大的Java堆:仅将其设置为必要的大小(最好不超过机器RAM的一半),以容纳使用Elasticsearch的总体最大工作集大小。这为操作系统留下了剩余的(希望是相当大的)RAM来管理IO缓存。
  • 在客户端,请始终使用批量api,该api在一个请求中为多个文档建立索引,并尝试使用正确数量的文档与每个批量请求一起发送。最佳尺寸取决于许多因素,但是请尽量避免文件太少而不是太多。将并发批量请求与客户端线程一起使用,或将异步请求单独使用。

要进一步研究,请参考以下链接:

  1. Elasticsearch索引编制的性能注意事项

  2. 通过HTTP进行批量索引的文档最大大小

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章