gpt4 book ai didi

marklogic - 如何获取光学查询返回的记录的 uri

转载 作者:行者123 更新时间:2023-12-04 08:17:54 25 4
gpt4 key购买 nike

我编写了一个光学查询来获取文档列表,我需要这些文档的 URI。

let $sql := "select * from table1"
let $results := op:from-sql($sql)
我需要 $results 中所有记录的 URI .
如何实现这一目标?

最佳答案

如果您使用 op:from-view 就可以到达那里反而。它允许您为系统列提供命名的 id,例如 op:fragment-id-col ,然后加入他们。要获取所有列的所有记录并返回一个额外的数据库 uri,您可以执行以下操作:

xquery version "1.0-ml";

import module namespace op="http://marklogic.com/optic"
at "/MarkLogic/optic.xqy";

let $fragmentId := op:fragment-id-col("fragmentId") (: name irrelevant, just needs to be unique :)
return op:from-view("myschema", "table1", (), $fragmentId)
=> op:join-doc-uri(op:col("uri"), $fragmentId)
=> op:limit(10)
=> op:result()
注意:一次运行整个记录集可能不会很好地扩展。最好翻页,并分块获得结果。
我还想指出,如果通过简单地将 uri 作为额外列添加到 View 中来避免连接,则可以提高性能。您可以使用 xdmp:node-uri(.) 填充它在您的 TDE 模板中。
哼!

关于marklogic - 如何获取光学查询返回的记录的 uri,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65632224/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com