我在java应用程序中运行IBM Watson Discovery服务API的查询:
queryBuilder.filter("blekko.hostrank>20,blekko.chrondate>1492552800,blekko.chrondate<1493157600,blekko.documentType:!\"blog\",blekko.documentType:!\"review\",language:english");
queryBuilder.query("text:" + brand);
queryBuilder.aggregation("[timeslice(blekko.chrondate,1day), term(docSentiment.type)]");
QueryResponse queryResponse = discovery.query(queryBuilder.build()).execute();
我在聚合的响应中有以下输出:
"aggregations": [
null,
{
"results": [
{
"key": "positive",
"matching_results": 245
},
{
"key": "negative",
"matching_results": 219
},
{
"key": "neutral",
"matching_results": 11
}
],
"type": "term",
"field": "docSentiment.type"
}
]
时间片聚合返回null。有人有经验吗?谢谢。
答案 0 :(得分:0)
查看文档,可能会出现此问题,因为您缺少时间片内的timezone参数:
timeslice:使用日期创建间隔段的专用直方图。有效日期间隔值为分钟,小时,日,周,月和年。语法为
timeslice(<field>,<interval>,<time_zone>)
。要使用时间片,文档中的时间字段必须是日期数据类型和ISO 8601格式。除非满足这两个要求,否则时间片参数无法正常工作......
有关时间片和其他聚合的更多信息,请参阅Query building reference。
我还建议使用Watson Discovery API Explorer,以便更轻松地测试查询并查看输出: