1

我正在使用 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 查询构建器中,它会给出正确的输出。

这可能是什么原因造成的?

4

2 回答 2

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 服务相关的所有未决问题的列表

于 2017-08-18T04:04:16.257 回答
0

出现此问题的原因可能是您缺少 : 中的timezone参数timeslice

timeslice(crawl_date,1day,America/New York) //for example

根据 IBM Watson Discovery 文档,时间片是一个专门的直方图,它使用日期来创建间隔段。有效的日期间隔值为分钟、小时、日、周、月和年。语法是timeslice(<field>,<interval>,<time_zone>). 要使用时间片,文档中的时间字段必须是日期数据类型并采用 ISO 8601 格式。除非同时满足这两个要求,否则时间片参数将无法正常工作......

请参阅此处使用聚合的官方参考。

于 2017-08-17T16:04:42.553 回答