【发布时间】:2015-05-04 15:50:35
【问题描述】:
我阅读了有关 Lucene 仅限于 2Gb 文档的说明。在 Elasticsearch 中可以索引的文档大小是否有任何其他限制?
【问题讨论】:
标签: elasticsearch
我阅读了有关 Lucene 仅限于 2Gb 文档的说明。在 Elasticsearch 中可以索引的文档大小是否有任何其他限制?
【问题讨论】:
标签: elasticsearch
Lucene 在内部使用一个字节缓冲区,该缓冲区使用 32 位整数进行寻址。根据定义,这限制了文档的大小。所以理论上 2GB 是最大的。
在 ElasticSearch 中:
ES GitHub 代码中有一个max http request size,它是针对Integer.MAX_VALUE 或2^31-1 设置的。因此,基本上,2GB 是通过 HTTP 进行批量索引的最大文档大小。此外,ES 在完成之前不会处理 HTTP 请求。
良好做法:
如需进一步研究,请参阅以下链接:
【讨论】:
想想这些年来,Elasticsearch 发生了一些微妙的变化。在此处引用的 7.x 文档中 - General Recommendations:
鉴于默认 http.max_content_length 设置为 100MB,Elasticsearch 将拒绝索引任何大于该值的文档。您可能决定增加该特定设置,但 Lucene 仍然有大约 2GB 的限制。
所以看起来 ES 的限制为 ~100MB,而 Lucene 的限制为 2GB,正如另一个答案所述。
【讨论】: