使用MarkLogic Node.js API读取大型文档

3

我正在尝试使用Node.js从MarkLogic读取xml/json文档。我已经从以下URL下载了Node.js API代码库。

https://github.com/marklogic/node-client-api

对于小于500KB的文档,它可以正常工作。但我们需要读取大型文档,例如2MB或10MB。

关于此,我们有两种情况,如下所述:

情况1:每当我尝试使用MarkLogic Node.js API读取文档时,应该获得多个块,但我只收到了一个块作为响应。因此,它无法正常工作。

var chunks = 0;
var length = 0;
db.documents.read("test.xml").stream('chunked').
  on('data', function(chunk) {
    console.log(chunk);
    console.log(chunk.length);
    chunks++;
    length += chunk.length;
  }).
  on('error', function(error) {
    console.log(JSON.stringify(error));
  }).
  on('end', function() {
    console.log('read '+chunks+' chunks of '+length+' length');
    console.log('done');
  });

情况二:每当我试图使用“http-digest-client”包阅读一些大型文档(如2 MB或10 MB)时,它都能正常工作,并且我可以获得完整的xml响应。

var digest = require('http-digest-client')('<Username>', '<password>');
digest.request({
  host: '<Host server>',
  path: '/v1/documents?uri=test.xml',
  port: 8007,
  method: 'GET',
}, function (res) {
  reply(res);
});

我已经在下面提到的示例(请参考下面的URL)中测试过大文档,但我得到了与上述情况1中描述的相同的响应。

https://github.com/marklogic/node-client-api/blob/develop/examples/read-stream.js#L27

根据我的要求,我想使用MarkLogic Node.js API(案例1)来阅读大型文档。
1. 如何使用MarkLogic Node.js API读取大型文档? 2. 是否有任何选项可以增加池内存大小或任何其他内存大小? 3. 这个问题是否与内存大小有关?
1个回答

1

固定为8.0-3;话虽如此,MarkLogic的最佳实践是使用更小的文档进行工作。(将文档视为行,集合视为表。)https://github.com/marklogic/node-client-api/commit/4d5a82152d34d8147bc423cd9dce74b1281d51c1 - ehennum
谢谢 ehennum。它运行得很好。再次感谢 :) - Gaurav Shringi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接