marklogic - Marklogic 中的可搜索表达式
问题描述
如何在 MarkLogic 的可搜索表达式中指定多个 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("*", ("case-insensitive","punctuation- insensitive","whitespace-insensitive","wildcarded","lang=en"), 1), cts:collection-query("OncoWatch")), ()))[1 to 10] -- 表达式不可搜索
但是当我尝试单独的 XPath 时,一切正常......
解决方案
可搜索的表达式必须是单个表达式。正如以利亚建议的那样,您可以尝试将条件部分放在谓词中(使用|
而不是“ 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
推荐阅读
- java - Android Studio,“未解决的参考:activity_main”
- java - Java StringTokenizer - nextToken() 与子字符串一起使用的问题
- javascript - 通过 JsSIP (Asterisk) 拨打电话时没有声音
- postgresql - Active Record 高效查询多个不同的表
- python - 错误绑定参数 0 - 可能是不支持的类型 python
- pine-script - 当我获得更高的高位时更改止损=低位
- java - Maven 项目:能够单独运行测试,但无法使用 Maven 测试运行整个项目 - 0 场景 0 步骤问题
- sql-server - 是否可以使用 SELECT INTO 写入同一个临时表?
- css - 将 CSS :host 类传递给组件的元素
- java - 图像未附加到回收站视图