Xquery 如何使用通配符搜索面
如何在搜索方面时返回以Ar*开头的所有值Xquery 如何使用通配符搜索面,xquery,marklogic,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">
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)
xquery版本“1.0-ml”;
导入模块命名空间搜索=”http://marklogic.com/appservices/search"
位于“/MarkLogic/appservices/search/search.xqy”;
let$options:=
假的
返回搜索:值(“实体”,$options)
我认为你不能用搜索:值来实现这一点。它确实需要a,您可以为其指定Ar
,但这只提供下限,而不是上限。如果您的文档片段中存在并发值,那么证明上限和下限的范围查询也不会有帮助
如果您可以直接使用cts函数,我会说使用。可以直接使用通配符的:
cts:value-match(cts:element-reference(fn:QName("http://www.com/mynamespace", "country"), "Ar*")
嗯 您可以构建一个执行@grtjn显示的cts:value匹配
调用的函数,将其放入“start”函数中。下面是另一个示例,展示了@Dave Cassel推荐的技术: