代码之家  ›  专栏  ›  技术社区  ›  Ravi

Marklogic中的可搜索表达式

  •  1
  • Ravi  · 技术社区  · 8 年前

    如何在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-uncharchable:cts:search(fn:collection()/es:envelope/es:raw/wos\u dps:REC/wos\u dps:static\u data/wos\u dps:summary/wos\u dps:titles | fn:collection()/es:envelope/es:raw/wos\u dps:REC/wos\u dps:static\u data/wos\u dps:fullrecord\u元数据/wos\u dps:abstracts,cts:and查询((cts:word查询(“*”,(“不区分大小写”,“不区分标点”,“不区分空白”,“通配符”,“lang=en”),1),cts:collection查询(“OncoWatch”),())[1到10]--表达式不可搜索

    但当我尝试使用个人XPath时,一切都正常。。。

    3 回复  |  直到 8 年前
        1
  •  3
  •   Mads Hansen    8 年前

    可搜索表达式必须是单个表达式。您可以尝试将条件部分放入谓词中(使用 | 而不是“ or

    您可以使用搜索引擎来探测表达式的哪些部分不可搜索 xdmp:query-trace . 启用它,尝试将表达式用作XPath表达式,然后查看 错误日志。文本 查看是否有任何段报告为不可搜索。

    大概是这样的:

    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

        2
  •  0
  •   Elijah Bernstein-Cooper    8 年前

    可以在单个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]

        3
  •  0
  •   Mads Hansen    8 年前

    请尝试写一些类似于:

    <searchable-expression xmlns:xh="http://www.w3.org/1999/xhtml">
        /(xh:html | CITATION) 
    </searchable-expression>