【问题标题】:MarkLogic - Extending the Search, return specific object nodeMarkLogic - 扩展搜索,返回特定对象节点
【发布时间】:2017-02-15 21:34:56
【问题描述】:

我是 MarkLogic 和 XQuery 的新手。

我正在尝试创建一个Search Transform 以返回来自文档特定级别的实际 JSON

这是一个示例文档。

我想返回整个基于 JSON 的 segment,无论搜索结果在较低级别的哪个位置(成绩单、主题、横幅等)


在查询控制台中四处飞溅...

search:search('trump')/search:result/search:snippet//@path

成功返回对象的path,包裹在fn:doc中

fn:doc("/20170120/NBCNightlyNews/1830/nbc")/array-node("segments")/object-node()1/transcript/node("00:00:02")/文本(“消息”)

然而,

当我尝试在转换中实现类似的 Xpath 表达式时。

let $root := $content/*
return document {$root/search:result/search:snippet//@path}

并尝试执行它(无论 xpath 表达式是什么,除了简单的 $root 本身还有不同的失败)它返回

<error-response xmlns="http://marklogic.com/xdmp/error">
<status-code>400</status-code>
<status>Bad Request</status>
<message-code>XDMP-CHILDNODEKIND</message-code>
<message>
XDMP-CHILDNODEKIND: $root/search:result/search:snippet/descendant-or-self::node()/@path -- document nodes cannot have attribute node children
</message>
</error-response>

如果我可以让转换返回路径,然后我可以继续尝试评估路径,获取适当的 JSON 部分并返回。

有什么想法吗?

【问题讨论】:

    标签: xquery marklogic


    【解决方案1】:

    您似乎写了a REST API service extension 来进行搜索。如果是这样,请考虑改用/v1/search 端点——这样您就可以使用内置功能。

    我不确定您到底要做什么:您是要从文档的“段”部分返回 sn-ps,还是要返回文档的完整部分,而不管比赛在哪里?

    如果是前者,您可以通过指定首选匹配源来customize the snippeting

    如果是后者,您可以编写a search transform,这将使您完全控制返回的内容。

    无论是使用 REST API 还是调用 Search API,这些选项都可用(我认为相同)。

    【讨论】:

    • 嗨,戴夫,感谢您的回复。我以前使用/v1/search,但最终需要进一步自定义搜索(我们正在使用内容分析服务器,它将提供我们需要在搜索中合并的权重,这就是我开始进入扩展的原因。我相信我需要研究一下Transforms,然后循环回到自定义搜索逻辑。我会在阅读建议的文档后循环回来
    • 根据您的最终目标,您可能还需要查看 extract-document-data 选项,该选项使您能够提取匹配文档的选定部分。 docs.marklogic.com/guide/search-dev/query-options#id_37692
    • 正如 Dave 和 Kim 所暗示的,您可以在资源服务扩展中使用 Search API,这将为您提供基于 sn-ping 和 XPath 的提取。
    • 我已经更新了我的问题,试图通过转换来实现这一点,我现在也将开始研究 extract-document-data 选项。谢谢大家的指导
    • 我认为提取比转换更适用于我的任务,谢谢@kcoleman 的提示
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多