Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 使用Watson开发者云节点SDK在IBM Watson Discovery Service中创建新文档_Node.js_Watson_Watson Discovery - Fatal编程技术网

Node.js 使用Watson开发者云节点SDK在IBM Watson Discovery Service中创建新文档

Node.js 使用Watson开发者云节点SDK在IBM Watson Discovery Service中创建新文档,node.js,watson,watson-discovery,Node.js,Watson,Watson Discovery,我尝试为IBMWatson发现服务创建一个新文档,并使用Watson开发者云/节点sdk 文档中的内容应该来自字符串,而不是文件。我试过了,但没有成功 discovery.addDocument({ environment_id: MYENVID, collection_id: MYCOLID, metadata:'{"Content-Type":"application/json"}', file:Buffer.from("HERE IS MY TEXT",

我尝试为IBMWatson发现服务创建一个新文档,并使用Watson开发者云/节点sdk

文档中的内容应该来自字符串,而不是文件。我试过了,但没有成功

 discovery.addDocument({
    environment_id: MYENVID,
    collection_id: MYCOLID,
    metadata:'{"Content-Type":"application/json"}',
    file:Buffer.from("HERE IS MY TEXT", 'utf8')
}, function(err, data) {
    if (err) {
        return next(err);
    } else {
        return res.json(data)
    }
});
这将创建一个没有内容的文档。 这就是结果的样子

{
    "id": "MYID",
    "score": 1,
    "metadata": {
        "Content-Type": "application/json"
    },
    "enriched_field_units": 0
}

有什么简单的东西我错过了吗?

你没有错过任何东西。目前正在开发的SDK中有一个bug。应该很快修好

我知道这是一个老问题,但我想提供一个更新,因为已经修复了两个额外的bug,并且在v2.34.0中添加了一个新的
addJsonDocument()
方法

首先要指出的是,在确定内容类型时,发现会忽略元数据对象。它只查看文件名和文件内容

text/plain
不受支持,因此根据您的确切示例,它将返回正确的标识和错误消息

但是,如果您在那里替换了有效的JSON,它仍然可能会错误地将其标识为没有适当文件名的文本

设置.json文件名或使用新的
addJsonDocument()
方法可以解决此问题:

  • 要设置文件名,请将
    文件
    设置为具有
    选项的对象。文件名
    字段:

    discovery.addDocument({
        environment_id: 'env-id-here',
        collection_id: 'coll-id-here',
        configuration_id: 'config-id-here',
        file: {
          value: Buffer.from("JSON goes here", 'utf8'),
          options: {
            filename: 'whatever.json'
          }
        }
    }, function(err, data) {
        if (err) {
            console.error(err);
        } else {
            console.log(JSON.stringify(data, null, 2));
        }
    });
    
  • 或者,对于JSON,使用addJsonDocument():

var document_obj = {
  environment_id: environment,
  collection_id: collection,
  file: {"foo": "bar"}
};

discovery.addJsonDocument(document_obj, function (err, response) {
  if (err) {
    console.error(err);
  } else {
    console.log(JSON.stringify(response, null, 2));
  }
});