如何在elasticsearch中索引大小过大时调试?

时间:2015-11-19 11:01:54

标签: elasticsearch

我只索引1000个文档,索引显示大小为0F 300MB。这看起来不正常。如何调试此行为并检查是否有错误?

2 个答案:

答案 0 :(得分:3)

索引的权重不仅取决于文档字节,还取决于已删除的文档,这些文档都是文档的旧版本+所有已删除的文档。每次重新索引具有相同ID的文档时,先前存储的旧版本将转到已删除的段,结果,索引的大小会增加。

您可以使用max_num_segments=1

尝试optimize您的索引
curl -XPOST 'http://localhost:9200/your_index/_optimize?max_num_segments=1'

<强>更新

请注意,自ES 2.1起,Optimize API已弃用并重命名为Force Merge API

答案 1 :(得分:2)

我觉得您可能有一些大型文档或格式错误的文档,其中包含您的代码添加的大量数据。这发生在我身上。我做的是在映射中启用大小参数,然后我根据大小进行排序,以查看哪个文档具有最大的大小。

尺寸映射 - https://www.elastic.co/guide/en/elasticsearch/reference/1.4/mapping-size-field.html

一旦完成,就像下面那样 -

{
  "sort": {
    "_size": {
      "order": "desc"
    }
  }
}