我在 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。有人有这方面的经验吗?谢谢。
查看文档,出现此问题的原因可能是您的时间片中缺少时区参数:
时间片:使用日期创建间隔段的专用直方图。有效的日期间隔值为分钟、小时、日、周、月和年。语法是
。要使用时间片,文档中的时间字段必须为日期数据类型且采用 ISO 8601 格式。除非满足这两个要求,否则 timeslice 参数将无法正常工作...timeslice(<field>,<interval>,<time_zone>)
有关时间片和其他聚合的更多信息可以在查询构建参考中找到。
我还建议使用 Watson Discovery API Explorer,以便更轻松地测试查询并查看输出: