Marklogic REST API - 从文档中提取数据

时间:2014-03-25 08:15:47

标签: api rest marklogic

我是MarkLogic的新手,我正在尝试使用搜索API从文档中提取信息。我的文件格式如下。

<nitf>
<head>
<title>ABC</title>
</head>
...
...
</nitf>

我只想在结果中显示与搜索查询匹配的文档的标题,即搜索API必须仅返回匹配文档的标题。我已经浏览了文档并尝试了一些不同的东西,例如@ehennum建议的查询选项,但没有效果。对此的任何帮助都会很棒。谢谢!

3 个答案:

答案 0 :(得分:4)

Krishna,听起来你根本不想要片段,所以你应该turn off snippeting

<search:transform-results apply="empty-snippet"/>

然后要获得标题,请使用extract-metadata

<search:extract-metadata>
  <search:qname elem-ns="" elem-name="title"/>
</search:extract-metadata>

答案 1 :(得分:2)

作为Dave良好建议的一个脚注,MarkLogic 7提供了Query By Example作为一个简单的搜索界面。请参阅:

http://docs.marklogic.com/REST/POST/v1/qbe

http://docs.marklogic.com/guide/search-dev/qbe#id_54044

特定查询类似于以下内容:

<q:qbe xmlns:q="http://marklogic.com/appservices/querybyexample">
  <q:query>
    ... your query by example ...
  </q:query>
  <q:response>
    <q:snippet><q:none/></q:snippet>
    <q:extract><title/></q:extract>
  </q:response>
</q:qbe>

如果我没记错,NITF不会使用命名空间,但如果确实如此,则必须使用前缀限定标题。

答案 2 :(得分:0)

要扩展来自@ dave-cassel的精美答案,自MarkLogic版本8以来,<search:extract-metadata>选项已弃用,您应该使用search:extract-document-data代替 - 直接从API文档中解除:

<search:extract-document-data selected="include">
  <search:extract-path xmlns="">/userName</search:extract-path>
</search:extract-document-data>

更多:https://docs.marklogic.com/search:search#opt-extract-document-data

相关问题