基于同一元素多个属性值的Marklogic查询

2023-12-28

我有以下 xml:

样本1.xml <root> <subjectInfo> <subject id="001"/> <subject id="002" role="cross"/> </subjectInfo> </root>

样本2.xml <root> <subjectInfo> <subject id="002"/> <subject id="001" role="cross"/> </subjectInfo> </root>

我正在寻找价值的文档id的属性subject是“001”但是role(如果有)相同的subject元素不是“交叉”。所以,在我的示例中,结果应包含sample1.xml并不是sample2.xml

我认为以下查询可以完成这项工作:

<code>
cts:search(/root,
        cts:near-query((
           cts:element-attribute-value-query(xs:QName("subject"),xs:QName("id"),"001"),
           cts:not-query(cts:element-attribute-value-query(xs:QName("subject"),xs:QName("role"),"cross"))),0)

           )
</code>

但它没有(返回一个空序列)。请给我一个可以的。


正如@wst所说,cts:not-query匹配两个文档。cts:*查询匹配文档片段,而不是子树。您可以通过嵌套来匹配与您的条件相反的条件cts:element-attribute-value-querya 内部的构造函数cts:element-query。这将匹配sample2.xml:

cts:search(/root,
  cts:element-query(xs:QName("subject"),
    cts:and-query((
      cts:element-attribute-value-query(xs:QName("subject"),xs:QName("id"),"001"),
      cts:element-attribute-value-query(xs:QName("subject"),xs:QName("role"),"cross")))))

也许您可以调整您的查询要求,这样就足够了。如果没有,您可以使用以下命令排除与此搜索匹配的文档except操作员。这将匹配sample1.xml:

cts:search(/root,
  cts:element-attribute-value-query(xs:QName("subject"),xs:QName("id"),"001"))

except

cts:search(/root,
  cts:element-query(xs:QName("subject"),
    cts:and-query((
      cts:element-attribute-value-query(xs:QName("subject"),xs:QName("id"),"001"),
      cts:element-attribute-value-query(xs:QName("subject"),xs:QName("role"),"cross")))))

如果您的文档具有唯一标识符,您可以添加范围索引并使用其中之一cts:*-values获取与第二个匹配的文档的唯一 ID 的函数cts:search,然后使用cts:not-query and cts:*-range-query从第一个文件中排除文件cts:search.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基于同一元素多个属性值的Marklogic查询 的相关文章

  • 如何在 Marklogic 中构建一个简单的搜索应用程序?

    我想在 Marklogic 中构建一个简单的搜索应用程序 但我不想使用应用程序生成器 我想编写自己的 xqy 文件 我想从用户那里获取名字 姓氏和地址的输入 用户可以按名字 姓氏或地址进行搜索 他还可以通过输入所有三个字段来进行搜索 也可以
  • MarkLogic 连接查询

    您好 我是 marklogic 和 Xquery 世界的新手 我无法想到在 Marklogic Xquery 中编写以下逻辑的起点 如果有人能给我想法 样本 我将不胜感激 以便我可以实现以下目标 我想根据 B XML 中的单词查找来查询 A
  • 使用 Logstash,如何根据每行匹配相同的时间戳来组合行?

    MarkLogic 日志文件通过打印具有相同时间戳 精确到毫秒 的行来表示多行 您可以在这段代码中看到这一点 2014 05 09 18 47 33 844 Info Dev Xdbc file store get file xqy url
  • 无法从 CPF 操作模块内创建 MarkLogic 计划任务

    我有一个 MarkLogic 数据库内容处理框架 CPF 已安装且 CPF 管道如下 每当插入文档时 它都会获取以下值执行日期从文档中并安排当时的任务 Example 样本文件
  • MarkLogic 8 - 将大型结果集流式传输到文件 - JavaScript - Node.js 客户端 API

    假设我有一个查询将返回一个非常大的响应 可能有数千条记录 也可能有千兆字节的数据 通常在用户界面中 我们只显示该数据的单个页面 现在我需要一个选项来获取整个结果集并将其流式传输到文件中 然后用户可以在闲暇时去下载这个 那么 如何使用查询生成
  • 如何高效替换XML的多个节点?

    我试图一次性替换单个文档的大约 500 个节点 并且我的数据库中有 5000 多个文档 我正在使用的代码与我之前问过的这个问题相关 Link https stackoverflow com questions 51998598 how to
  • marklogic mlcp 自定义转换拆分聚合文档为多个文件

    我有一个 JSON 聚合 文件 我想使用 mlcp 将其拆分并作为多个文档摄取到 MarkLogic 中 我想要使用 javascript 在摄取过程中转换内容 http docs marklogic com guide mlcp impo
  • ms-excel 兼容的 csv 文件,代表 MarkLogic 目录中的所有文档

    我怎样才能最好地制作一个MS Excel兼容的csv代表 MarkLogic 目录中所有文档的文件 使用XCCJava 客户端和Tomcat and Marklogic两者都位于偏远地区 目录中的文档数量约为15000个 第一部分 获取目录
  • MarkLogic XML 到 JSON 的转换

    我正在尝试将此 XML 文件转换为 JSON 但无法取得任何成功 我的 XML 中有两个子元素 但它只返回最后一个 如何获取 JSON 格式的两条记录 XML
  • 如何在 Ubuntu 14.04 上安装 MarkLogic 8?

    在 Ubuntu 14 04 上安装 MarkLogic 8 的步骤是什么 根据 Alex Bleasdale David Ennis 的说法 下载 CentOS 版本 然后 Ubuntu 和其他基于 Debian 的发行版使用 DEB 软
  • 在 Marklogic Javascript 中实现 For 循环?

    我可以使用下面的 XQuery 获取集合中文档的所有 URI for doc in fn collection transform return xdmp node uri doc 但是 当我尝试在 MarkLogic 的 Javascri
  • MarkLogic - 带有 REST API 的 CORS

    我有一个基于 MarkLogic 的 Web 应用程序 它从两个源提取数据 一个文档存储和一个三重存储 两者都托管在我的 MarkLogic 服务器上 该应用程序使用 MarkLogic 的内置 REST API 来访问这些数据存储 文档存
  • 在 MarkLogic 中处理禁运内容场景

    我有一个 MarkLogic 7 数据库 其中插入了多个文档 每个文档都有自己的created on and released on 举例来说 如果将文档插入到数据库中1400小时及其released on值为1700小时然后我需要将此文档
  • Marklogic Eclipse 设置

    我一直在尝试使用 marklogic 设置 eclipse 以将其用作我的 xquery 编辑器 我按照 Marklogic 关注此链接 http developer marklogic com learn xqdt setup http
  • MarkLogic 9 cts.parse 无法正确解析查询

    我正在使用 MarkLogic 9 开发基于 Web 的搜索应用程序 我有一个查询构建界面 允许用户将字符串输入到与数据库中文档的特定 JSON 属性相对应的文本框中 这个想法是 用户可以完全按照 cts parse 我使用服务器端 jav
  • 如何在Marklogic中使用Group By?

    我想在 xquery 中使用 Group By 有人可以告诉我如何在 Marklogic 中使用 Group By 吗 或者 您可以使用调用 XSLTxdmp xslt invoke or xdmp xslt eval MarkLogic
  • 尝试运行 XQuery 脚本以单点登录 MarkLogic 时出错

    我正在研究使用 xquery 重写器脚本来自动登录单点登录解决方案 我从端口 8001 的管理应用程序服务器开始 在应用程序服务器配置中 我有 设置身份验证 application level 设置 url 重写器 rewriter xqy
  • 使用索引数据计算非结构化文档中的所有唯一单词

    我已将非结构化 HTML 文档加载到 Marklogic 中 并且 对于任何给定的文档 URI 我需要一种使用索引 词典来提供所有唯一单词的字数统计的方法 例如 假设我有以下文件 保存在 URI html example html 下 h1
  • 有没有查看/编辑/删除Marklogic文档的工具

    有没有什么工具可以view edit deleteMarklogic 的文档 比如 Mongo Management Studio for MongoDb MarkLogic 内置了对 WebDav 的支持 您可以在管理控制台中创建 Web
  • 在大型数据库上使用谓词?

    我有一个包含 50 000 000 个文档的数据库 我想将每个文档的 base uri 写入一个文件 运行整个 50 000 000 次运行时间太长 查询超时 所以 我想我应该使用谓词将数据库分成更易于管理的批次 因此 我尝试了以下方法来了

随机推荐

  • Excel公式最小值的位置

    编辑 可能是一个简单的问题 基本上我有三个值 比如说不同单元格中的 9 4 和 7 不在表中 我想找到订单中的最小值 然后返回其相对位置 例如 9 4 7 将返回 2 因为 4 是最小值并且位于第二位 正确的Excel公式是什么 谢谢 解决
  • 使用Scala对象作为key的reduceByKey

    我正在将 Spark 与 scala 一起使用 并且我有一个充满 tuple2 的 RDD 其中包含一个复杂对象作为键和一个 double 目的是如果对象相同 则加倍 频率 为此 我将我的对象定义如下 case class SimpleCo
  • R 中的分组依据和条件

    我有一个具有相似名称 课程 课程和完成情况的数据框 name lt c John John John Sam Sam course lt c Driving Driving Driving Cycling Cycling lesson lt
  • 指定的子项已经有父项。您必须首先对孩子的父母调用removeView()

    我正在做一个关于输入你的名字的应用程序的小练习 它返回 你好 你输入的名字 但是在我按下按钮后 我收到错误 指定的子项已经有父项 您必须首先在子项的父项上调用removeView MainActivity java package com
  • Spring Boot 中未调用 ClientHttpRequestInterceptor

    我正在尝试使用 ClientHttpRequestInterceptor 将日志记录添加到我的应用程序 我的拦截器没有被调用 不知道这里出了什么问题 这是我的代码 Component Slf4j public final class Res
  • SQL 模式匹配

    我有一个与 SQL 相关的问题 我想匹配两个字段的相似性并返回相似程度的百分比 例如 如果我有一个名为 doc 的字段 其中包含以下内容 This is my first assignment in SQL 在另一个领域我有类似的东西 My
  • Hibernate:复杂对象的初始化

    我在合理的时间内从数据库完全加载非常复杂的对象并使用合理的查询数量时遇到问题 我的对象有很多嵌入实体 每个实体都引用另一个实体 另一个实体引用另一个实体 依此类推 因此 嵌套级别为 6 因此 我创建了示例来演示我想要的内容 https gi
  • 无法使用 Node.js 处理 PHP 文件

    我有一个在 Heroku 服务器上运行的 Node js Web 应用程序 我的 javascript 中有一个 AJAX 请求 它将 GET 请求发送到服务器上的 PHP 文件 该请求工作正常 事实上 如果我在没有任何 Node js 而
  • Lumen (Laravel) Eloquent php artisan make:模型未定义

    我将 Lumen 1 0 用于 API 项目 我已经通过取消注释以下行来启用 Eloquent引导程序 app php file app gt withEloquent 但是当我想通过迁移创建第一个模型时 它失败了 php artisan
  • 在 SQLite android 中存储图像

    我有一个 SQLite 数据库 我使用此代码将图像存储为 BLOB URL url new URL http t0 gstatic com images q tbn ANd9GcRsaLl3TGB4W2hJFN Wh0DNVPQEYGtwe
  • GNU 排序命令的行为(使用非字母 ASCII 字符,例如点或分号)

    我想要sort命令平等对待所有字符 例如 当我这样做时 echo e TEST b nTESTa nTESTc sort TESTa TEST b TESTc 该点被忽略 我想得到TEST b在最后或第一个位置 但是 我在手册页中找不到正确
  • UNIX:同一路径上的两个同名目录? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 当我浏览 UNIX 系统时 当我执行以下操作时 我发现同一个路径上列出了五个具有相同名称的目录ls Dl 这是观点 为什么我说五个 两个同
  • 获取可用的 clojure 命名空间

    有没有一种惯用的方法来获取可以使用的可用名称空间 all ns 仅返回已使用的名称空间 Package getPackages 返回所有可用的 Java 包import 但仅限那些已使用的 Clojure 命名空间 然后我偶然发现这个帖子
  • 使用 ACL 调用 upload_file 时,Ruby S3“访问被拒绝”错误

    我正在尝试编写一个 Ruby 脚本 将文件上传到 AWS 并使该文件公开可用 我做了以下事情 s3 Aws S3 Resource new credentials Aws Credentials new KEY SECRET region
  • 当主键为 varchar 时,无法从 Laravel 的 Eloquent 检索列值

    我遇到了一个问题 我的 Laravel 的 Eloquent 模型没有给我名为 id 的列的值 它只是变成整数 0 而不是字符串 我虽然该列受到某种保护 但在 id 是整数的其他模型中 它返回的值很好 问题 我不能使用 VARCHAR 作为
  • 使用 jQuery 的 $().on('mouseenter',function(){}) 比 $().mouseenter(function(){}) 有优势吗?

    我经常看到这样的代码 thing on mouseenter function Do stuff 就我个人而言 我几乎总是这样写 thing mouseenter function Do stuff 同样 我也经常写 thing click
  • .NET 平台扩展 7 中的 Host.CreateDefaultBuilder 与 Host.CreateApplicationBuilder

    我们一般使用以下方式创建主机Host CreateDefaultBuilder 方法 这Host CreateDefaultBuilder返回一个IHostBuilder The IHostBuilder有一些扩展方法 我们可以通过它们配置
  • 阅读动画 GIF SDL 2

    我希望能够加载 GIF 动画 而不是在我正在开发的游戏中使用精灵表和网格 我相信这会让我做的事情比现在容易得多 我在 Google 上查了一下 但我发现的只是一个使用 Win32 调用的库 因此仅限于 Windows 我相信 如果我弄清楚如
  • 在Excel VBA中提取json数组的最大值而不进行迭代

    我有 JSON 数据字符串 我尝试从中提取 id 的最高值而不进行迭代 这是 JSON 数据字符串 ball coordinates id 3938706 fixture id 18795544 period id 4644037 time
  • 基于同一元素多个属性值的Marklogic查询

    我有以下 xml 样本1 xml