我在Debian服务器上安装了Elasticsearch 1.2.2,索引文件约为5.3M。当我运行myindex/_stats
时,我会收到以下信息:
{
"_shards": {
"total": 10,
"successful": 5,
"failed": 0
},
"_all": {
"primaries": {
"docs": {
"count": 5306837,
"deleted": 100209
},
"store": {
"size_in_bytes": 32003706527,
"throttle_time_in_millis": 1657592
},
....
}
告诉我我的文档的总大小等于~32 GB
但是,elasticsearch文件夹中数据文件夹的大小为 72GB
从Elasticsearch doc,我试过了
curl -XPOST 'http://localhost:9200/myindex/_optimize?only_expunge_deletes=true'
运行此命令
(注意:我还在所有索引= curl -XPOST 'http://localhost:9200/_optimize?only_expunge_deletes=true
上运行此命令,没有显着差异)
如何将数据文件夹大小减小到文档的实际大小?
答案 0 :(得分:3)
默认情况下,如果分段的删除百分比超过10%,则elasticsearch仅合并一个分段。如果要删除索引中标记为已删除的所有文档,则应更改elasticsearch.yml中的index.merge.policy.expunge_deletes_allowed并将其设置为0,然后运行optimize命令:
curl -XPOST' http://localhost:9200/myindex/_optimize?only_expunge_deletes=true'
您可以查看at this link了解有关合并政策的更多详情。
答案 1 :(得分:0)
您应该运行以下内容:
curl -XPOST 'http://localhost:9200/myindex/_optimize?max_num_segments=1
也许你应该多次运行它。 (因为如果有太多的段,它将不会在一个步骤中加入所有段。)
答案 2 :(得分:0)
我认为您在尺寸上看到的差异与索引和文档元数据有关,这对任何数据库都是正常的。索引的大小取决于您的映射。从技术上讲,您的文档大小永远不会与elasticsearch数据文件夹的大小相同。
以下链接可能有助于更好地解释这一点: