如何在MarkLogic的searchable-expression中指定多个XPath?
我尝试了以下操作:
let $options :=
<options xmlns="http://marklogic.com/appservices/search">
<additional-query>
<cts:collection-query xmlns:cts="http://marklogic.com/cts">
<cts:uri>OncoWatch</cts:uri>
</cts:collection-query>
</additional-query>
<searchable-expression xmlns:es="http://marklogic.com/entity-services"
xmlns:wos_dps="http://clarivate.com/schema/wok5.27/public/FullRecord">
/es:envelope/es:raw/wos_dps:REC/wos_dps:static_data/wos_dps:summary/wos_dps:titles|
/es:envelope/es:raw/wos_dps:REC/wos_dps:static_data/wos_dps:fullrecord_metadata/wos_dps:abstracts
</searchable-expression>
<term>
<term-option>case-insensitive</term-option>
<term-option>punctuation-insensitive</term-option>
<term-option>whitespace-insensitive</term-option>
<term-option>wildcarded</term-option>
</term>
<search-option>unfiltered</search-option>
<transform-results apply="empty-snippet"/>
</options>
我收到以下错误
[1.0-ml] XDMP-UNSEARCHABLE:cts:search(fn:collection()/ es:envelope / es:raw / wos_dps:REC / wos_dps:static_data / wos_dps:summary / wos_dps:titles | fn:collection( )/ es:envelope / es:raw / wos_dps:REC / wos_dps:static_data / wos_dps:fullrecord_metadata / wos_dps:abstracts,cts:and-query((cts:word-query(“ *”,(“不区分大小写”, “标点不敏感”,“空格不敏感”,“通配符”,“ lang = en”),1),cts:collection-query(“ OncoWatch”)),()))[1至10]-表达式无法搜索
但是当我尝试单个XPath时,一切正常...
答案 0 :(得分:3)
可搜索表达式必须是单个表达式。您可以尝试将条件部分放在谓词中(使用|
代替“ or
”作为运算符),如以利亚所建议。
您可以使用xdmp:query-trace
来搜索表达式中哪些部分不可搜索。启用它,尝试将您的表达式用作XPath表达式,然后查看 ErrorLog.txt 以查看是否有任何段报告为不可搜索。
类似这样的东西:
xquery version "1.0-ml";
(
xdmp:query-trace(fn:true()),
fn:doc()/your/xpath/expr/here,
xdmp:query-trace(fn:false())
)
这里有一个输出示例:
http://docs.marklogic.com/guide/performance/query_meters#id_84776
答案 1 :(得分:0)
请尝试编写如下内容:
<searchable-expression xmlns:xh="http://www.w3.org/1999/xhtml">
/(xh:html | CITATION)
</searchable-expression>
答案 2 :(得分:0)
您可以在单个XPath表达式中添加条件路径,如下所示:
/es:envelope/es:raw/wos_dps:REC/wos_dps:static_data[wos_dps:summary/wos_dps:titles or wos_dps:fullrecord_metadata/wos_dps:abstracts]