elasticsearch 已安装mapper-size插件并将其添加到索引Map中,但索引中未显示_size字段

uttx8gqw  于 2023-06-21  发布在  ElasticSearch
关注(0)|答案(2)|浏览(148)

我们试图找出Elasticsearch(版本7.0.1)索引中哪些文档消耗了最多的磁盘空间。我们找到了Elastic提供的mapper-size插件。我们在所有Elasticsearch数据/主节点上安装了插件,并在每个节点上重新启动了ES服务。我们还将_size字段添加到索引模式Map中。但是,_size字段未显示。该索引由运行在我们的应用服务器上的几个Filebeat服务提供,并且该索引每晚都会滚动。
我们尝试创建一个与索引模式匹配的全新索引。Map中存在_size字段:

"application_log_test" : {
"mappings" : {
  "_size" : {
    "enabled" : true
  }

但是,在添加了几个测试文档之后,_size字段没有显示在查询的文档中。我们验证了所有Elasticsearch节点都加载了插件:

[2019-09-16T15:10:45,103][INFO ][o.e.p.PluginsService     ] [node-name-1] loaded plugin [mapper-size]

我们希望添加到索引中的任何文档都能计算并显示_size元数据字段。此字段不会显示在我们的输出中。

bttbmeg0

bttbmeg01#

_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']"  
    }
  }
}
uujelgoq

uujelgoq2#

对于ElasticSearch 7.10,您可以使用docvalue_fileds参数在研究响应中返回_size。

GET index/_search
{ 
  "docvalue_fields": ["_size"]
}

相关问题