javascript - ibm 的 watson-developer-cloud Node.js sdk 的 Discovery 模块中的 updateDocument api 坚持使用文件参数

标签 javascript node.js watson-discovery

我尝试通过 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/

相关文章:

javascript - Angular.js 不显示从 $http.get 检索到的对象数组

javascript - 加密后无法解密回来

javascript - 如何在 mongodb (mongoose) 中覆盖子文档的数组属性

json - 如何直接从内存中索引 JSON 文档

javascript - 导航 JSON 对象

javascript - 如何在 handlebars.js 模板中使用 getter?

ibm-cloud - Bluemix Discovery 服务是否有文档加载速率限制

java - IBM 沃森 : Unknown API error when adding documents to the collection

javascript - 在 Canvas 上绘制灯光

node.js 中的 jQuery.ajax()?