我为弹性搜索观察器设置创建了一个查询。结果集如下所示:
interface SignalrWindow extends Window {
$: any;
}
declare var window: SignalrWindow ;
在操作部分,我可以使用以下方式访问字段:
"_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"
在源标记之后,我使用上面列表中的“type”字段。其他例子是:
"actions": {
"my-logging-action": {
"logging": {
"text": "There are {{ctx.payload.hits.hits.0._source.....
这很好用...... 但是不可能使用像
这样的字段"ctx.payload.hits.hits.0._source.beat.hostname"
解析器认为这些字段是嵌套的,但这只是一个带有点的字段名。 有没有可能“逃避”这个字段名称? 谁也遇到过这个问题?
非常感谢&最好的祝福 克劳斯
答案 0 :(得分: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}}
。
答案 1 :(得分:0)
我认为以下应该有效:
{{#ctx.payload.hits.hits.0._source}}{{tbroker.workitem.sync_check.tbroker_value}}{{/ctx.payload.hits.hits.0._source}}
这是 Mustache 的限制,这是一种解决方法。