1

Ich arbeite derzeit mit Node.js mit dem Watson-Developer-Cloud Node.js SDK und ich habe Probleme beim Senden einer Abfrage das schließt eine Entität ein.Senden einer AlchemyData News Abfrage mit Node.js (Watson-Entwickler-Cloud-Modul)

Dies ist mein Code:

// require watson's node sdk and fs 
var watson = require('watson-developer-cloud'); 
var fs = require('fs'); 

// Define output file 
var outputJSONFile = '/home/vagrant/Desktop/node/dir/data.json'; 

// Create alchemy_data_news object using our api_key 
var alchemy_data_news = watson.alchemy_data_news({ 
    api_key: '' 
}); 

// Define params for the query and what values to return 
// Accepted returne values: 
// docs.alchemyapi.com/v1.0/docs/full-list-of-supported-news-api-fields 
var params = { 
    start: 'now-1m', 
    end: 'now', 
    count: 2, 
    qs: ['q.enriched.url.enrichedTitle.entities.entity.text=apple'], 
    return: ['enriched.url.url,enriched.url.title'] 
}; 

// Call getNews method and return json 
alchemy_data_news.getNews(params, function (err, news) { 
    if (err) { 
    console.log('error:', err); 
    } else { 
    fs.writeFile(outputJSONFile, JSON.stringify(news, null, 2), function(err) { 
     if (err) { 
     console.log('WriteFile Error:', err); 
     } else { 
     console.log("JSON saved to " + outputJSONFile); 
     } 
    }); 
    } 
}); 

Ich bin immer noch versuchen, herauszufinden, wie die Entitäten Parameter der params-Objekt zu senden.

Während ich durch irgendeinen Code graben kam, stieß ich auf qs, also habe ich das benutzt, um zu prüfen, aber ich hatte Erfolg überhaupt nicht gehabt.

Alle Vorschläge werden sehr geschätzt.

PS: Ich versuche, weitergeben müssen:
q.enriched.url.enrichedTitle.entities.entity.text = Apfel q.enriched.url.enrichedTitle.entities.entity.type = Firma

+0

Es scheint, wie mit dieser Änderung wird der Code nun problemlos funktionieren: var params = { ... ... ‚q.enriched.url.enrichedTitle .entities.entity.text ':' Apple ', ' q.enriched.url.enrichedTitle.entities.entity.type ':' Firma ', ... }; Wenn es einen besseren Weg gibt, lass es mich wissen. Vielen Dank! – Paul

Antwort

2

Wenn Sie sich die node-sdk source code for AlchemyDataNews ansehen, werden Sie sehen, dass die Top-Level-Parameter als Abfragezeichenfolgen gesendet werden.
params Karte sollte dann sein:

var params = { 
    start: 'now-1m', 
    end: 'now', 
    count: 2, 
    return: ['enriched.url.url,enriched.url.title'], 
    // fields here 
    'q.enriched.url.enrichedTitle.entities.entity.text': 'apple', 
    'q.enriched.url.enrichedTitle.entities.entity.type': 'company' 
}; 
+0

Vielen Dank für Ihre Hilfe! – Paul