You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在MarkLogic中查询value为1120721的文档URI

查找指定节点值的文档URI

XQuery实现方式

提供两种写法,可按需选择:

方式1:直接遍历匹配(适合小数据集)

xquery version "1.0-ml";

declare namespace cre = "http://nl.abnamro.com/cre";

for $doc in collection()//cre:Firstdocument/contact/contactId/value[text() = "1120721"]/../../../../..
return xdmp:uri($doc)

方式2:利用索引高效查询(适合大数据集)

前提是数据库已为cre:value节点创建元素值索引:

xquery version "1.0-ml";

declare namespace cre = "http://nl.abnamro.com/cre";

cts:search(
  collection(),
  cts:element-value-query(xs:QName("cre:value"), "1120721")
) ! xdmp:uri(.)

JavaScript实现方式

'use strict';

const creNs = 'http://nl.abnamro.com/cre';
const valueQName = fn.QName(creNs, 'value');

// 查询匹配文档并输出URI
cts.search(cts.elementValueQuery(valueQName, '1120721'))
  .toArray()
  .forEach(doc => console.log(xdmp.documentUri(doc)));

关键说明

  • 必须绑定http://nl.abnamro.com/cre命名空间:因为<Firstdocument>及其子节点(包括<value>)都继承了该命名空间,查询时不指定会无法匹配节点。
  • 索引优化:如果数据量较大,优先使用基于索引的查询方式,能大幅提升性能。

内容的提问来源于stack exchange,提问作者Aviator

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 01:16:12