【发布时间】:2017-07-25 03:30:34
【问题描述】:
我有文件,如下所示:
{
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')
我通过 c# NEST api 像这样索引我的文档:
elasticClient.Index(
new
{
DateTime = DateTime.Now,
Message = evt.EventArgs.Message,
},
idx => idx.Index($"logstash-{evt.MessageCode}"));
【问题讨论】:
-
你能分享你的
message.users字段的映射吗? -
另一个好的做法是在索引时简单地创建另一个名为
userCount的字段,其中包含message.users数组中的用户数。 -
@Val,很抱歉刚接触弹性搜索。我刚刚使用了 C# Nest API,并更新了我如何索引文档的答案。
标签: elasticsearch kibana kibana-5 timelion