You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取文本字段中Top 10高频词并在Kibana中可视化?

嘿,我来帮你搞定这个需求!要从你的数千份文档的全文本字段里提取Top10高频词,还能在Kibana里可视化展示,分两步走就轻松搞定:

第一步:用Elasticsearch聚合获取Top10高频词

首先你需要通过Elasticsearch的terms聚合来统计词频,这里要注意你的全文本字段类型:如果是text类型,默认会被分词,所以要根据你的需求选择聚合的字段:

  • 如果你想统计完整的原始词汇(比如“machine learning”作为一个词),就用字段的.keyword子字段(默认text字段都会自动生成这个子字段)
  • 如果你想统计分词后的单个词(比如把“machine learning”拆成“machine”和“learning”分别统计),直接用text字段即可

下面是对应的DSL查询示例,记得替换成你的索引名和字段名:

GET /your_index_name/_search
{
  "size": 0, // 不需要返回具体文档,只看聚合结果
  "aggs": {
    "top_10_words": {
      "terms": {
        "field": "your_fulltext_field.keyword", // 替换成你的字段名,或者去掉.keyword用text字段
        "size": 10,
        "order": {
          "_count": "desc" // 按出现次数降序排列
        }
      }
    }
  }
}

如果需要排除一些无意义的停用词(比如“the”“a”“的”这类),可以在聚合外层加个filter来过滤,或者提前在Elasticsearch的索引分词器里配置停用词过滤器,这样统计出来的结果更有价值。

第二步:在Kibana中可视化Top10词频

拿到聚合数据后,就可以在Kibana里做可视化了,推荐用条形图(最直观展示TopN):

  • 打开Kibana,进入Visualize Library,点击右上角的Create visualization
  • 选择Vertical Bar(或者Horizontal Bar,看你喜欢的布局)
  • 选择你的索引模式作为数据源
  • 在Metrics面板,保持默认的Count聚合即可(统计每个词的出现次数)
  • 点击Add添加Buckets,选择Split Bars(或者Split Series),然后选择Terms聚合
  • 在Terms聚合的设置里:
    • Field选择你之前用的字段(比如your_fulltext_field.keyword)
    • Size设为10
    • Order by选择Count,排序方向选Descending
  • 你还可以调整图表的标题、颜色、标签等样式,然后点击Save保存这个可视化,之后就能把它添加到Kibana Dashboard里展示了!

如果想要更灵活的统计(比如只统计长度大于3的词、排除数字),还可以用Kibana的Scripted Field或者在聚合里写简单的脚本过滤~

内容的提问来源于stack exchange,提问作者Mit94

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 09:51:08