У меня есть документы, которые выглядят примерно так:
{
dateTime: /* My time field */,
message: {
users: ['1', '2']
},
messageType: 'test'
}
Я хотел бы построить диаграмму серии timelion, которая показывает мне кумулятивную сумму количества массива message.users
. Моей первой мыслью было создать скрипт:
if(doc.containsKey('message.users')) {
return doc['message.users'].length;
} else {
return 0;
}
Из того, что я мог сказать, doc.containsKey('message.users')
всегда было ложным, что говорит мне о том, что он, возможно, был неправильно проиндексирован. Я пробовал множество Timelion, все безрезультатно:
.es(index=logstash-*,timefield='dateTime',q='messageType:UserList').label('Users Online')
Я индексирую свой документ через С# NEST API следующим образом:
elasticClient.Index(
new
{
DateTime = DateTime.Now,
Message = evt.EventArgs.Message,
},
idx => idx.Index($"logstash-{evt.MessageCode}"));
message.users
? - person Val   schedule 27.07.2017userCount
, которое содержит количество пользователей в вашем массивеmessage.users
. - person Val   schedule 27.07.2017