marklogic - cts:在搜索结果上应用包装元素时突出显示函数抛出错误
问题描述
cts:highlight
当我将搜索结果包装在<reuslt>
抛出错误的包装器元素中时,我正在对搜索结果应用函数。
[1.0-ml] XDMP-CHILDNODEKIND: let $SearchOption := <options xmlns="http://marklogic.com/appservices/search"><term><term-option>case-insensitive</term-option><term-option>wildcarded</term-option><term-option>stemmed</term-option><term-option>diacritic-insensitive</term-option><term-option>punctuation-insensitive</term-option></term><debug>true</debug></options> let $search := search:search("multilayers", $SearchOption, 1, 10) return <result>{ for $searchResult in $search/search:result let $docUri := $searchResult/@uri return let $document := fn:doc($docUri) return cts:highlight($document, "multilayers", <hilighted-text>{ $cts:text }</hilighted-text>) }</result>
-- 元素节点不能有文档节点子节点
下面是代码:
xquery 版本“1.0-ml”;
import module namespace search = "http://marklogic.com/appservices/search" at "/MarkLogic/appservices/search/search.xqy";
let $SearchOption := <options xmlns="http://marklogic.com/appservices/search">
<term>
<term-option>case-insensitive</term-option>
<term-option>wildcarded</term-option>
<term-option>stemmed</term-option>
<term-option>diacritic-insensitive</term-option>
<term-option>punctuation-insensitive</term-option>
</term>
<debug>true</debug>
</options>
let $search := search:search('multilayers',$SearchOption,1,10)
return
<result>{
for $searchResult in $search/search:result
let $docUri := $searchResult/@uri
return
(
let $document := fn:doc($docUri)
return
cts:highlight($document, "multilayers", <hilighted-text>{$cts:text}</hilighted-text>)
)
}</result>
解决方案
(将评论变成正确答案)
根本原因是您将文档节点提供给 cts:highlight 函数,显然它在您的案例中找到了顶级匹配项。这听起来有点奇怪,但它试图将顶级节点放在一个hilighted-text
元素中,但这在 XML 中是不允许的。
$document/node()
简单的解决方案是通过使用而不是传递根元素,而不是文档节点本身$document
。
!
推荐阅读
- apache-spark - 在执行程序 pod 上得到 java.lang.UnsupportedOperationException
- python - 如何使用 pandas 适用于带有 args 的某些列
- asynchronous - 网络核心异步任务
- reactjs - React-Redux,从商店中过滤掉项目时出错
- java - 卧式回收站视图 | 项目之间的无用空间
- c# - 带有列表的 for 循环 c#
- java - Java 应用程序未使用正确的用户名/密码连接到 oracle 数据库
- google-apps-script - 复制 Google Doc 模板并用作电子邮件正文
- css - 使用 Shiny R 运行 css 时出错
- karate - 在空手道 UI 中使用 xpath 需要帮助