如何向标准令牌生成器添加其他分隔符?

时间:2019-05-20 12:35:46

标签: elasticsearch elasticsearch-analyzers

给出此文字(例如nginx日志中的示例)

  

646#646:* 226999 SSL_do_handshake()失败(SSL:错误:1417D18C:SSL例程:tls_process_client_hello:版本太低),而SSL握手,客户端:192.0.2.0,服务器:0.0.0.0:443

textAlignment = .right令牌生成器产生

layoutIfNeeded

我希望标记standard646 646 226999 ssl_do_handshake failed ssl error 1417d18c:ssl routines:tls_process_client_hello:version too low while ssl handshaking client 192.0.2.0 server 0.0.0.0 443 1417d18c:ssl上进行其他拆分。但是,我不希望routines:tls_process_client_hello:version:被进一步分割,例如ssl_do_handshake被标记为192.0.2.0can't

在内置令牌生成器之后,是否可以应用其他拆分?

我坚持使用can吗?在哪种情况下,什么正则表达式重复t的行为?

1 个答案:

答案 0 :(得分:1)

您似乎添加了标准分析仪。如果您对标准分析程序的功能还满意,并且只是希望所产生的令牌进一步由:进行标记,则可以将标准分析程序定义为您的自定义分析程序,如给定here并添加一个{{3} },以进一步标记标准令牌生成器生成的令牌。

因此,如下定义分析器和令牌过滤器:

{
  "settings": {
    "analysis": {
      "analyzer": {
        "logs": {
          "tokenizer": "standard",
          "filter": [
            "lowercase",
            "log"
          ]
        }
      },
      "filter": {
        "log": {
          "type": "pattern_capture",
          "patterns": [
            "([^:]+)"
          ],
          "preserve_original" : false
        }
      }
    }
  }
}