如何搜索文档内容并在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文件名。
答案 0 :(得分:0)
此信息不会自动保留,因此您需要以某种方式在内容管道中明确支持它。
您可以修改管道以将原始文档名称存储在目标XML文档的document属性中,您可以将文档名称作为元数据存储在文档中,也可以将原始文档名称存储为URI的一部分。
答案 1 :(得分:0)
可能会过时,但很有用。
http://docs.marklogic.com/xdmp:node-uri
xdmp:node-uri
xdmp:node-uri(
$node as node()
) as xs:string?
Summary
返回参数或其祖先的document-uri
属性。