我尝试通过 watson-developer-cloud Node.js SDK 在 IBM 的 Discovery 服务中插入/更新文档,但它不起作用。我的一些文档没有关联文件,因此它们仅包含元数据。 This documentation表示您必须提供文档内容、元数据或两者。
但是,如果您尝试更新仅元数据文档,updateDocument 调用将会失败。
我将问题追踪到 node-sdk/discovery/v1.js 中的第 607 行,即 requiredParams: ['environment_id', 'collection_id', 'document_id', 'file ']
我相信这就是问题的根源,因为它表明 'file' 是必需参数,与 API 文档所述相反。 API 文档必须正确,因为我可以从 Discovery API explorer 更新仅元数据文档。 .
最佳答案
您只需确保调用 updateJsonDocument()
并发送一个空对象
const DiscoveryV1 = require('watson-developer-cloud/discovery/v1');
const fs = require('fs');
const discovery = new DiscoveryV1({
username: 'YOUR USERNAME',
password: 'YOUR PASSWORD',
version_date: DiscoveryV1.VERSION_DATE_2017_08_01
});
discovery.updateJsonDocument(
{
environment_id: 'YOUR ENVIRONMENT ID',
collection_id: 'YOUR COLLECTION ID',
configuration_id: 'YOUR CONFIGURATION ID',
file: {},
metadata: { foo: 'bar' }
},
function(error, data) {
if (error) {
console.log(error);
} else {
console.log(data);
}
}
);
文档没有更新,但是可以看到方法here 。
关于javascript - ibm 的 watson-developer-cloud Node.js sdk 的 Discovery 模块中的 updateDocument api 坚持使用文件参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45992305/