Lucene内部使用一个字节缓冲区,该缓冲区使用32位整数进行寻址。根据定义,这限制了文档的大小。因此,理论上最大2GB。
在ElasticSearch中:
max http request sizeES
GitHub代码中有一个,并将其设置为
Integer.MAX_VALUE或
2^31-1。因此,基本上,
2GB是通过HTTP进行批量索引的最大文档大小 。此外,ES不会处理HTTP请求,直到它完成为止。
良好做法:
- 如果可以帮助,请不要使用非常大的Java堆:仅将其设置为必要的大小(最好不超过机器RAM的一半),以容纳使用Elasticsearch时总的最大工作集大小。这就为 *** 作系统留下了剩余的(希望是相当大的)RAM来管理IO缓存。
- 在客户端,请始终使用批量api,该api在一个请求中为多个文档建立索引,并尝试使用正确数量的文档与每个批量请求一起发送。最佳尺寸取决于许多因素,但是请尽量避免文件太少而不是太多。将并发批量请求与客户端线程一起使用,或将异步请求单独使用。
要进一步研究,请参考以下链接:
Elasticsearch索引的性能注意事项
通过HTTP进行批量索引的文档最大大小
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)