如何使用通配符搜索来搜索构面

时间:2016-12-21 06:49:55

标签: xquery marklogic

当我们搜索构面时,如何返回以Ar *开头的所有值

xquery version "1.0-ml";
import module namespace search = "http://marklogic.com/appservices/search"
at "/MarkLogic/appservices/search/search.xqy";

let $options := 
  <options xmlns="http://marklogic.com/appservices/search">
    <values name="entity">
      <range type="xs:string">
        <element ns="http://www.com/mynamespace" name="country" />
     </range>
    </values>
    <return-metrics>false</return-metrics>
  </options>
return search:values("entity", $options)

1 个答案:

答案 0 :(得分:2)

我认为你不能用search:values做到这一点。它确实需要start parameter,您可以为其指定Ar,但这只会提供下限,而不是上限。如果文档片段中有并发值,则证明上限和下限的范围查询将无济于事。

如果您可以直接使用cts函数,我会说使用cts:value-match。这可以直接使用您的通配符:

cts:value-match(cts:element-reference(fn:QName("http://www.com/mynamespace", "country"), "Ar*")

HTH!