2017-05-24 5 views
0

J'exécutez une requête à l'API de service IBM Watson Discovery dans une application java:agrégation des nouvelles Watson Discovery par timeslice retourne null

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(); 

je la sortie suivante dans la réponse pour l'agrégation:

"aggregations": [ 
    null, 
    { 
     "results": [ 
     { 
      "key": "positive", 
      "matching_results": 245 
     }, 
     { 
      "key": "negative", 
      "matching_results": 219 
     }, 
     { 
      "key": "neutral", 
      "matching_results": 11 
     } 
     ], 
     "type": "term", 
     "field": "docSentiment.type" 
    } 
    ] 

Les agrégations de timeslice retournent null. Quelqu'un a-t-il de l'expérience à ce sujet? Je vous remercie.

Répondre

1

En regardant la documentation, ce problème peut se produire parce que vous manque le paramètre fuseau horaire à l'intérieur de votre timeslice:

timeslice: Un histogramme spécialisé qui utilise des dates pour créer des segments d'intervalle. Les valeurs d'intervalle de date valides sont les minutes, les heures, les jours, les semaines, les mois et les années. La syntaxe est timeslice(<field>,<interval>,<time_zone>). Pour utiliser timeslice, les champs d'heure dans vos documents doivent être du type de données de date et au format ISO 8601. À moins que ces deux conditions sont remplies, le paramètre timeslice ne fonctionne pas correctement ...

Plus d'informations sur timeslice et autres agrégations se trouve dans le Query building reference.

Je recommande également d'utiliser l'API Discovery Watson Explorer pour le rendre plus facile à tester votre requête et voir la sortie:

Watson Discovery API Reference