kibana tophits on transform group by a field not all field变换组

j5fpnvbx  于 2021-06-13  发布在  ElasticSearch
关注(0)|答案(1)|浏览(538)

所以我有一个例子,我需要使用最热门的转换,我想显示数据的基础

我有这些数据

email      col2      col3     col4  col5    Time
a.com         a        a        a    a     11:00 
a.com         a        a        a    a     11:01 
a.com         a        b        a    a     11:02

我想删除重复的电子邮件,并只显示基于最新时间。我正在使用transform并基于max time进行聚合。我选择了我需要的每一个领域。它返回如下数据:i转换索引并使其按以下方式分组:email、col2、col3、col4并按max(time)聚合

当前索引

email      col2      col3     col4  col5    Time
a.com         a        a        a    a     11:01 
a.com         a        b        a    a     11:02

我只想让它显示我的目标

email      col2      col3     col4  col5    Time
a.com         a        b        a    a     11:02

如何在groupby email基础上进行转换?因为我需要所有的字段,但我不认为添加所有的as group by是正确的,但是只有2种方法,要么是aggregation要么是groupby
我的转变定义:它不是我所需要的

{
  "id": "transform_baru",
  "source": {
    "index": [
      "email-profile-nov-bug*"
    ],
    "query": {
      "match_all": {}
    }
  },
  "dest": {
    "index": "transform_baru"
  },
  "pivot": {
    "group_by": {
      "Email.keyword": {
        "terms": {
          "field": "Email.keyword"
        }
      },
      "fa.keyword": {
        "terms": {
          "field": "fa.keyword"
        }
      },
      "ever.keyword": {
        "terms": {
          "field": "ever.keyword"
        }
      },
      "bln.keyword": {
        "terms": {
          "field": "bln.keyword"
        }
      },
      "domain.keyword": {
        "terms": {
          "field": "domain.keyword"
        }
      },
      "Email_age_category.keyword": {
        "terms": {
          "field": "Email_age_category.keyword"
        }
      },
      "Status_Category.keyword": {
        "terms": {
          "field": "Status_Category.keyword"
        }
      },
      "Vintage_cat.keyword": {
        "terms": {
          "field": "Vintage_cat.keyword"
        }
      }
    },
    "aggregations": {
      "extract_date.max": {
        "max": {
          "field": "extract_date"
        }
      }
    }
  },
  "settings": {},
  "version": "7.8.0",
  "create_time": 1607832008196
}
1cklez4t

1cklez4t1#

使用这个tophit解决方法解决了问题,但我无法使用它。使用方法如下:
只选择所需的groupby。在我的情况下,我只会添加电子邮件
编辑json配置并使用最新的文档脚本添加聚合
将“@timestamp”字段更改为您的时间字段。
所以从技术上讲,您只使用电子邮件作为groupby,使用最新的文档作为聚合
在预览中,可能只显示您选择作为分组依据的字段,但在创建转换索引时,该字段的其余部分将显示在latest.doc脚本下。所以不用担心,只需创建转换
我希望这能帮助一些有弹性的新手使用这个变通方法。
谢谢所有帮助我的人。干杯

相关问题