如何轻松地将字段从已分析更改为非分析

时间:2016-10-26 20:11:50

标签: elasticsearch logstash kibana filebeat

我有一个通过filebeat进入我的logstash实例的主机名字段被传递给ElasticSearch,在那里它被视为分析字段。这会导致问题,因为字段本身需要在其整体中进行报告。

示例:了解有多少请求来到" prd-awshst-x-01"而不是把它们分成prd,awshst,x,01。

有没有人有一种轻量级的方法可以用于可视化?

谢谢,

3 个答案:

答案 0 :(得分:1)

我们必须更新特定字段的已分析映射到not_analyzed。

PUT/ mapping url/
{
   property:{
           field:{
               text:"not_analyzed"
                }
           }
}

更新属性后,请检查是否在映射网址上使用GET方法映射。

答案 1 :(得分:0)

根据帖子的标题,您已经知道需要将字段的映射更改为not_analyzed。

您应该设置一个模板,以便将来的索引包含此映射。

如果您想保留现有数据,则必须使用新映射将其重新索引到新索引中。

如果你正在使用默认的logstash模板,它可能会创建一个not_analyzed" .raw"您可以在kibana中进行可视化的字段。

答案 2 :(得分:0)

Filebeat提供的index template将主机名字段配置为not_analyzed。

您应该手动install the index template随Filebeat提供,然后配置Logstash以将数据写入Filebeat索引,如docs中所述。

这就是elasticsearch输出的样子。如果您正在通过Logstash处理其他数据,那么您可能希望在此输出周围添加条件,以便仅通过此输出发送节拍事件。

output {
  elasticsearch {
    hosts => "localhost:9200"
    manage_template => false
    index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}"
    document_type => "%{[@metadata][type]}"
  }
}