我们试图找出 Elasticsearch(版本 7.0.1)索引中的哪些文档消耗的磁盘空间最多。我们找到了Elastic提供的mapper-size插件。我们在所有 Elasticsearch 数据/主节点上安装了该插件,并在每个节点上重新启动了 ES 服务。我们还将 _size 字段添加到索引模式映射中。但是,_size 字段没有显示。该索引由我们的应用程序服务器上运行的多个 Filebeat 服务提供,并且该索引每晚都会滚动。
我们尝试创建一个与索引模式匹配的全新索引。_size 字段存在于映射中:
"application_log_test" : {
"mappings" : {
"_size" : {
"enabled" : true
}
Run Code Online (Sandbox Code Playgroud)
然而,在添加了一些测试文档后,查询的文档中并没有显示_size字段。我们验证了所有 Elasticsearch 节点都加载了该插件:
[2019-09-16T15:10:45,103][INFO ][o.e.p.PluginsService ] [node-name-1] loaded plugin [mapper-size]
Run Code Online (Sandbox Code Playgroud)
我们期望添加到索引的任何文档都可以计算并显示 _size 元数据字段。该字段不会显示在我们的输出中。
该_size字段不会添加到您的源文档中。您可以查询它、聚合它、对其进行排序,但要实际查看它的值,您需要通过脚本字段来完成。尝试运行下面的查询,您将看到:
GET application_log_test/_search
{
"query": {
"range": {
"_size": {
"gt": 10
}
}
},
"aggs": {
"sizes": {
"terms": {
"field": "_size",
"size": 10
}
}
},
"sort": [
{
"_size": {
"order": "desc"
}
}
],
"script_fields": {
"size": {
"script": "doc['_size']"
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1277 次 |
| 最近记录: |