0

如何在 Marklogic 中搜索文档内容并返回对应的文档名称?假设我的文档名称是test.doc并且它包含一个文本,例如 "hello world"。现在我在 Marklogic Server 中上传这个文档,内容处理器将生成相应的 XML 文件。现在我正在这样搜索:-

import module namespace search="http://marklogic.com/appservices/search" at "/Marklogic/appservices/search/search.xqy";
declare variable $options:=
<options xmlns="http://marklogic.com/appservices/search">
<transform-results apply="raw"/>
</options>;

for $d in search:search("hello world", $options)/search:result
return tokenize(data($d/@uri), "/")[last()]

它返回包含文本“ hello world ”的相应 XML 和 XHTML 文件名,但我只想返回原始文档名 ( test.doc) 而不是相应的 XML 文件名。

4

2 回答 2

1

可能已经过时,但很有用。

http://docs.marklogic.com/xdmp:node-uri

xdmp:node-uri

xdmp:node-uri(
   $node as node()
) as xs:string?
Summary

返回document-uri参数或其祖先的属性。

于 2015-07-14T07:02:15.137 回答
0

此信息不会自动保留,因此您需要在内容管道中以某种方式明确支持它。

您可以修改管道以将原始文档名称存储在目标 XML 文档的文档属性中,您可以将文档名称作为元数据存储在文档中,或者您可以将原始文档名称存储为 URI 的一部分。

于 2012-07-19T19:29:57.120 回答