我正在使用Java应用程序来执行聚合,而我正在使用依赖
<dependency>
<groupId>com.ibm.watson.developer_cloud</groupId>
<artifactId>java-sdk</artifactId>
<version>3.8.0</version>
</dependency>
汇总是:
builder.filter("crawl_date>2017-08-11,crawl_date<2017-08-17");
builder.aggregation("filter(enriched_title.entities.type::Company).term(enriched_title.entities.text).timeslice(crawl_date,1day).term(enriched_text.sentiment.document.label)");
QueryResponse response = discovery.query(builder.build()).execute();
但响应是空的。如果在IBM Bluemix查询构建器中放置相同的代码,则它会提供正确的输出。
导致这种情况的原因是什么?
答案 0 :(得分:0)
由于您遗漏了timeslice
内的 timezone 参数,因此可能会发生此问题:
timeslice(crawl_date,1day,America/New York) //for example
根据IBM Watson Discovery Documentation的Timeslice是一个专门的直方图,它使用日期来创建间隔段。有效日期间隔值为分钟,小时,日,周,月和年。语法为timeslice(<field>,<interval>,<time_zone>)
。
要使用时间片,文档中的时间字段必须是日期数据类型和ISO 8601格式。除非满足这两个要求,否则时间片参数无法正常工作......
使用聚合here查看官方参考。
答案 1 :(得分:0)
实际上,这是watson-developer-cloud / java-sdk的3.8.0版本的限制 - 它目前不支持API支持的所有聚合类型。版本3.8.0仅支持“term”,“histogram”和计算(“average”,“min”,“max”,“sum”)。
您可以在https://github.com/watson-developer-cloud/java-sdk/issues?q=is%3Aopen+is%3Aissue+label%3Adiscovery
查看与Watson Discovery服务相关的所有未解决问题的列表