【问题标题】:How to search and return document name in Marklogic?如何在 Marklogic 中搜索并返回文档名称?
【发布时间】:2012-07-16 08:51:27
【问题描述】:

如何在 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 文件名。

【问题讨论】:

  • 您运行的是哪个版本的 MarkLogic,您启用了哪个内容处理器?
  • 我使用的是 Marklogic 5.0-2 企业版,并且我为 Office 2007/2010 文档启用了内容处理器。

标签: xquery marklogic


【解决方案1】:

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

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

xdmp:node-uri

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

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-03-08
      • 1970-01-01
      • 1970-01-01
      • 2021-04-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-05
      相关资源
      最近更新 更多