Tag: marklogic

Marklogic:“突出显示”似乎不适用于Node.js和QueryBuilder

我尝试使用JSON集合中突出显示的search词来获取文本摘录。 我的search语法是: qb.word(qb.field('doc_text'),vartxt) 在Node.js应用程序中,将'doc_text'声明为字段(field type: root, include root: false, includes: doc_text) 。 search工作得很好,在这个领域做得很好……但是在txt[0].results[kl].matches[0]['match-text'] ,我find了JSON的前3个属性,而不是从'doc_text'find的单词的摘录。 我有另一个应用程序,其中的亮点正常工作,但它是基于XML。 我在字段声明中忘记了什么,或者JSON和XML数据之间的操作是不同的,还是不是通过Node.js和QueryBuilder在JSON上运行的高亮系统? 亲切的问候

MarkLogic 8 – XQuery高效地将大型结果集写入文件

更新:请参阅MarkLogic 8 – 将大型结果集stream到文件 – JavaScript – Node.js客户端API,以获得有关如何在Javascript中执行此操作的答案。 这个问题是专门询问XQuery的。 我有一个Web应用程序,它使用node.js中托pipe的其余服务。 Node简单地将请求代理到XQuery,然后查询MarkLogic。 这些查询已经具有分页设置,并在正常情况下正常工作,以返回一个页面的数据到用户界面。 我需要有一个导出function,当我把一个URL的参数export=all在请求中时,它不再查找一个页面。 在这一点上它应该得到整个结果集,即使它是一百万条logging,并将其保存到一个文件。 实际的请求需要立即返回,说:“当你的下载准备就绪时,我们会通知你。 一个build议是使用xdmp:spawn在后台调用XQuery,将结果保存到文件中。 然后,我的实际的HTTP请求可以立即返回。 对于产卵片,我认为这个想法是,我运行我的查询不同的选项,以获得所有的结果,而不是一页。 然后我将循环访问数据并创build一个stringvariables来调用xdmp:save with。 有些问题,这是一个好主意吗? 有没有更好的办法? 如果我遍历结果集,它确实发生非常大(千兆字节),它可能会导致内存问题。 有没有办法直接将结果stream到XQuery中的文件? 注意:我的另一个想法是拦截代理(节点)层的请求,然后做一个xdmp:估计来获取logging计数,然后循环查询每个页面并将其刷新到磁盘。 在这种情况下,我需要find一些方法来立即返回我的请求,但在后台处理似乎有一些想法在这里: http : //www.pubnub.com/blog/node-background-jobs-async-处理换asynchronous语言/

marklogic用node-client-api保存xml文档?

我似乎无法将xml文档保存到marklogic与它的node-client-api。 我曾经使用下面的代码来尝试保存一个虚拟的XML文档 var marklogic = require('marklogic'); var my = require('../db/env.js'); var db = marklogic.createDatabaseClient(my.connInfo); console.log("Write a single dummy xml document"); db.documents.write( { uri: '/collegiate/testxml.xml', contentType: 'application/xml', content: '<entry-list><entry id="horror"></entry></entry-list>' }) 然后我使用下面的代码来检索它: var marklogic = require('marklogic'); var my = require('../db/env.js'); var db = marklogic.createDatabaseClient(my.connInfo); console.log("Read a single xml document"); db.documents.read('/collegiate/testxml.xml') .result().then(function(document) { //console.log('\nURI: ' + document.uri); […]

如何使用Node使用摘要式身份validation来发布消息?

我正尝试使用节点将消息发送到具有摘要安全性的MarkLogic应用程序服务器。 等效的curl请求正常工作: curl -v -X POST –anyauth -u admin:admin –header "Content-Type:application/json" \ -d '{"user-name":"joe", "password": "cool"}' http://localhost:8002/manage/v2/users 我尝试使用NPM请求模块 ,它说它支持摘要请求。 我能够成功地做一个GET请求。 这是POST的一个尝试: request( { 'url': 'http://localhost:8000/manage/v2/users', 'method': 'POST', 'auth': { 'user': 'admin', 'password': 'admin', 'sendImmediately': false }, 'followRedirect': true, 'followAllRedirects': true, 'json': true, 'body': {'user-name':'joe', 'password': 'cool'} }, function(error, response, body) { console.log('callback: ' + response.statusCode); […]

MarkLogic 8提取作业,以非规范化JavaScript中的集合

我有3个数据库视图来自关系数据库,他们被摄入MarkLogic作为3个集合。 这三个观点是相互关联的。 我想join这些数据,然后把它们都收集到一个非规范化的集合中。 我可以使用连接创build一个新的SQL视图,然后将其embedded到一个新的集合中。 或者我可以把MarkLogic现有的集合,并设置一个后台作业来创build这个新的集合。 两个问题: 1)推荐的方法是什么? 2)如果我采取后台方法,我应该如何设置? 我想在这种情况下使用Javascript,所以我会使用客户端或服务器端API? 我是否可以将其设置为按计划自动运行或手动运行?

Marklogic 8 Node.js API – 如何范围search一个属性的子根目录?

[更新于28/09/17 17:15] 我正在操纵types的json数据: [ { "id": 1, "title": "Sun", "seeAlso": [ { "id": 2, "title": "Rain" }, { "id": 3, "title": "Cloud" } ] }, { "id": 2, "title": "Rain", "seeAlso": [ { "id": 3, "title": "Cloud" } ] }, { "id": 3, "title": "Cloud", "seeAlso": [ { "id": 1, "title": "Sun" } ] }, […]

标记集合NodeJS中的Marklogic QueryByExample

TLDR 有没有办法将queryByExample范围限制在NodeJS中的集合? 面临的问题 我有一个复杂的查询与一些可选的字段(即有时一些search字段将被省略)。 所以我需要dynamic地创build一个查询,例如在JSON中。 QueryByExample似乎是在这里使用的正确的工具,因为它给了我灵活的传递JSON。 然而,我的问题是,我想限制我的search只有一个集合或目录。 例如,我希望有类似的东西 searchJSON = { title: { $word: "test" }, description: { $word: "desc" } }; //query db.documents.query(qb.where( qb.collection("collectionName"), qb.byExample(searchJSON) )).result()… 在这种情况下, searchJSON可能是dynamic构build的,例如,有时标题可能会从search中省略。 这不起作用,因为查询生成器只允许queryByExample成为唯一的查询。 但我宁愿build立一个仅限于一个集合或目录的dynamicsearch查询。

Marklogic 9 + Roxy:无法使用Node.js连接到创build的数据库

我正在尝试Roxy部署者。 Roxy应用程序是使用默认的应用程序types创build的。 我安装了一个新的ML 9数据库,并使用默认端口(8040和8041)运行了“ml local bootstrap” 然后我设置一个节点应用程序。 我尝试了以下(示例代码从https://docs.marklogic.com/jsdoc/index.html ) var marklogic = require('marklogic'); var conn = { host: '192.168.33.10', port: 8040, user: 'admin', password: 'admin', authType: 'DIGEST' } var db = marklogic.createDatabaseClient(conn); db.createCollection( '/books', {author: 'Beryl Markham'}, {author: 'WG Sebald'} ) .result(function(response) { console.log(JSON.stringify(response, null, 2)); }, function (error) { console.log(JSON.stringify(error, null, 2)); }); 运行脚本给了我一个错误,如: […]

MarkLogic 8 – node.js API – 将XML转换为JSON

我正在学习MarkLogic的Javascript API。 我做了一个查询: cts.search( cts.andQuery( [cts.wordQuery("abc"), cts.collectionQuery(["Strings"])] ) ); 并获得XML。 我知道如何在XQuery中将这个XML转换为JSON,但是如何在Node中执行? 我似乎无法在文档中find它。

MarkLogic – node.js – 如何要求cts进行search

我有节点db连接工作好吧我想: var marklogic = require('marklogic'); var db = marklogic.createDatabaseClient({ … 现在我想做cts.search我如何要求cts?