0

我为弹性搜索观察程序设置创建了一个查询。结果集如下所示:

"_index": "transaction_broker-2017.09.15",
        "_type": "transaction_broker",
        "_id": "AV6Fn_UQ9KbnKce40avY",
        "_score": 3.8539968,
        "_source": {
          "tbroker.workitem.sync_check.tbroker_value": 7000,
          "source": "/logs/web/tomcat/tbroker.log.json",
          "type": "transaction_broker",
          "tbroker.job.instance_id": "lixporta-p00.xxxxxxx.15053054001381505305457198",
          "tbroker.workitem.sync_check.backend_total_value": 6995,
          "tbroker.appversion": "1.1.135-180",
          "@version": 1,
          "beat": {
            "hostname": "lixporta-p00",
            "name": "lixporta-p00",
            "version": "5.1.1"

在操作部分,我可以使用以下方法访问字段:

"actions": {
    "my-logging-action": {
      "logging": {
        "text": "There are {{ctx.payload.hits.hits.0._source.....

在源标记之后,我使用例如上面列表中的“类型”字段。另一个例子是:

"ctx.payload.hits.hits.0._source.beat.hostname"

这工作得很好......但不可能使用像

"tbroker.workitem.sync_check.tbroker_value"

解析器认为这个字段是嵌套的,但这只是一个带有点的字段名。有没有可能“转义”这个字段名?任何人也有这个问题?

非常感谢和最好的问候克劳斯

4

2 回答 2

0

我认为以下应该有效:

{{#ctx.payload.hits.hits.0._source}}{{tbroker.workitem.sync_check.tbroker_value}}{{/ctx.payload.hits.hits.0._source}}

这是 Mustache 的一个限制,这是一种解决方法。

于 2021-07-09T15:16:01.183 回答
0

无法直接访问其中包含点的源字段,但如果您应用这样的转换:

"transform": {
  "script": {
    "inline": "return [ 'host' : ctx.payload.hits.hits[0]._source.host, 'tbroker_value' : ctx.payload.hits.hits[0]._source['tbroker.workitem.sync_check.tbroker_value']]",
   "lang": "painless"
  }
}

然后你可以在你的行动中使用{{ctx.payload.host}}和。{{ctx.payload.tbroker_value}}

于 2018-05-09T15:07:33.560 回答