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

MarkLogic Optic查询:实现基于fragmentColId的通用文档URI左关联方案

通用查询方案:通过fragmentColId关联获取文档URI并保留无片段数据行

要同时适配TDE表和sys.sys_tables这类内置系统表,你可以直接关联系统元数据表sys.sys_fragments,利用它存储的所有片段与文档URI的映射关系,再通过LEFT JOIN确保无匹配片段的数据行不会被丢弃。

核心思路

op:join-doc-uri是TDE专属的便捷函数,仅适配TDE表的片段关联逻辑;而sys.sys_fragments是MarkLogic全局的片段元数据表,涵盖所有用户表、系统表的片段信息,通过它做关联可以实现通用场景的适配。

通用查询写法示例

针对sys.sys_tables的查询

SELECT 
  st.table_name,
  st.fragmentColId,
  sf.document_uri
FROM sys.sys_tables st
LEFT JOIN sys.sys_fragments sf
  ON st.fragmentColId = sf.fragment_id

针对TDE表的查询(以名为my_tde_table的表为例)

SELECT 
  mt.*,
  sf.document_uri
FROM my_tde_table mt
LEFT JOIN sys.sys_fragments sf
  ON mt.fragmentColId = sf.fragment_id

关键说明

  • 使用LEFT JOIN而非内连接,确保即使fragmentColId无对应片段(或值为空),原数据行仍会被保留,此时document_uri会返回NULL
  • sys.sys_fragments中的fragment_id与各类表的fragmentColId是直接匹配的关联键,无论表类型是TDE还是系统内置表都适用

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 08:29:54