假设我有一些带有一个命名空间的xml文档(http://www.marklogic.com)和另一组带有另一个命名空间的xml文档(http://www.mynamespce.com)。现在我想只搜索那些具有http://www.marklogic.com命名空间的xml文档。我怎么能这样做?
答案 0 :(得分:2)
您没有说出如何搜索,但如果您正在调用search:search
,则可以将searchable-expression
选项设置为文档的根元素,包括命名空间。
declare variable $query as xs:string external ;
search:search(
$query,
<options xmlns="http://marklogic.com/appservices/search">
<searchable-expression
xmlns:ns1="http://test/namespace/1">/ns1:doc</searchable-expression>
</options>)
或者您可以直接致电cts:search
。可搜索的表达式是第一个参数。
declare namespace ns1="http://test/namespace/1" ;
declare variable $query as cts:query external ;
cts:search(/ns1:doc, $query)
也可能有其他选择。例如,您可以设置多个字段并使用字段查询进行搜索。