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

Asi*_*ov4 28 elasticsearch

我读到有关Lucene deing仅限于2Gb文档的说明.是否可以在Elasticsearch中编制索引的文档大小有任何其他限制?

Uts*_*awn 47

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

在ElasticSearch中:

max http request sizeES GitHub代码中有一个,它是针对Integer.MAX_VALUE或设置的2^31-1.因此,基本上,2GB是通过HTTP进行批量索引的最大文档大小.而且要添加它,ES在完成之前不会处理HTTP请求.

良好做法:

  • 如果可以帮助它,请不要使用非常大的Java堆:将其设置为必要的大小(理想情况下,不超过机器RAM的一半),以保持使用Elasticsearch的总体最大工作集大小.这使得OS的剩余(希望很大)RAM可以管理IO缓存.
  • 在客户端,始终使用批量api,它在一个请求中索引多个文档,并尝试使用每个批量请求发送的正确数量的文档.最佳尺寸取决于许多因素,但试图朝着太少而不是太多文件的方向犯错.将并发批量请求与客户端线程或单独的异步请求一起使用.

有关进一步研究,请参阅以下链接:

1)弹性搜索索引的性能考虑因素

2)记录通过HTTP进行批量索引的最大大小


slm*_*slm 10

想想 Elasticsearch 这些年来情况略有变化。在此处引用的 7.x 文档中 -一般建议

鉴于默认的 http.max_content_length 设置为 100MB,Elasticsearch 将拒绝索引任何大于该值的文档。您可能决定增加该特定设置,但 Lucene 仍然有大约 2GB 的限制。

因此,ES 的限制似乎是 ~100MB,而 Lucene 的限制是 2GB,正如另一个答案所述。