我刚刚从以前的索引转储中做了一个完整的重新索引,但新创建的索引是以前索引的两倍,甚至在它为所有文档建立索引之前。原因是什么?以前的指数是3.7gb,新的是7gb。更新:它现在已经下降到5. 2 GB(可能是由于分段合并),但正如你所看到的,它仍然比以前的索引3. 7 GB大
的数据下面是两个索引的分片输出:的
sg24os4d1#
新旧索引大小之间存在差异的原因是未分配的碎片。
GET _cat/shards/index_name_1,index_name_2?v
字符串上面的API调用显示,对于一个小索引,存在一些未分配的碎片。未分配的碎片正在影响store.size。store.size是所有碎片大小的总和。如果碎片未分配,则不会计算碎片。pri.store.sizes和store.size对于大索引具有不同的大小。这意味着大索引的一个副本已分配,而小索引的两个副本未分配。您可以使用以下API调用检查碎片未分配的原因。
store.size
pri.store.sizes
GET _cluster/allocation/explain
型Elasticsearch将重试5次以分配碎片。如果它失败了5次,将不会有任何自动过程来分配这些碎片。您可以使用以下API调用强制分配碎片。
POST _cluster/reroute?retry_failed=true
型请注意,如果您遇到磁盘水印问题,例如磁盘空间不足,分配过程将再次失败。您可以通过删除旧的索引或删除旧的Elasticsearch日志等来获得更多的磁盘空间。
1条答案
按热度按时间sg24os4d1#
新旧索引大小之间存在差异的原因是未分配的碎片。
字符串
上面的API调用显示,对于一个小索引,存在一些未分配的碎片。未分配的碎片正在影响
store.size
。store.size
是所有碎片大小的总和。如果碎片未分配,则不会计算碎片。pri.store.sizes
和store.size
对于大索引具有不同的大小。这意味着大索引的一个副本已分配,而小索引的两个副本未分配。您可以使用以下API调用检查碎片未分配的原因。
型
Elasticsearch将重试5次以分配碎片。如果它失败了5次,将不会有任何自动过程来分配这些碎片。您可以使用以下API调用强制分配碎片。
型
请注意,如果您遇到磁盘水印问题,例如磁盘空间不足,分配过程将再次失败。您可以通过删除旧的索引或删除旧的Elasticsearch日志等来获得更多的磁盘空间。