Kibana Tophits 按字段而非所有字段转换组

Kibana Tophits on transform group by a field not all field

所以我有这种情况,我需要在转换时使用热门点击 我想显示基于

的数据

我有这个数据

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

我想去掉重复的邮件,只显示最近的时间。我正在使用转换并根据最大时间聚合它。对于组,我选择我需要的每个字段。它 returns 数据如: 我转换索引并将其分组:电子邮件、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

我怎样才能只基于电子邮件分组而不是每个字段进行转换?因为我需要所有字段,但我不认为添加所有 as group by 是正确的,但只有 2 种方法,聚合或 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
}

使用这个 Tophit workaround 解决了问题 但我无法使用它。使用方法如下:

  1. 只选择你需要的groupby。就我而言,我只会添加 Email
  2. 编辑 json 配置并使用 latest_doc 脚本添加聚合
  3. 将“@timestamp”字段更改为您的时间字段。
  4. 所以从技术上讲,您使用电子邮件作为分组依据,latest_doc作为聚合
  5. 在预览中,它可能只显示您选择作为分组依据的字段,但是当创建转换索引时,其余字段将显示在 latest.doc 脚本下。所以别担心,只需创建 transform

我希望这会帮助一些弹性新手使用这个解决方法。

感谢所有试图帮助我的人。干杯