Watson Discovery 按时间片进行的新闻聚合返回 null

问题描述 投票:0回答:1

我在 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。有人有这方面的经验吗?谢谢。

java ibm-watson watson-discovery
1个回答
0
投票

查看文档,出现此问题的原因可能是您的时间片中缺少时区参数:

时间片:使用日期创建间隔段的专用直方图。有效的日期间隔值为分钟、小时、日、周、月和年。语法是

timeslice(<field>,<interval>,<time_zone>)
。要使用时间片,文档中的时间字段必须为日期数据类型且采用 ISO 8601 格式。除非满足这两个要求,否则 timeslice 参数将无法正常工作...

有关时间片和其他聚合的更多信息可以在查询构建参考中找到。

我还建议使用 Watson Discovery API Explorer,以便更轻松地测试查询并查看输出:

Watson Discovery API 参考

© www.soinside.com 2019 - 2024. All rights reserved.