0

Suppose I am having some xml documents with one namespace(http://www.marklogic.com) and another set of xml documents with another namespace(http://www.mynamespce.com). Now I want to search in only those xml documents which are having http://www.marklogic.com namespace. How can I do this ?

4

1 回答 1

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>)

http://docs.marklogic.com/5.0doc/docapp.xqy#display.xqy?fname=http://pubs/5.0doc/xml/search-dev-guide/search-api.xml%2343671有更多关于这个选项。

或者你可以cts:search直接打电话。可搜索表达式是第一个参数。

declare namespace ns1="http://test/namespace/1" ;
declare variable $query as cts:query external ;
cts:search(/ns1:doc, $query)

也可能有其他选择。例如,您可以设置多个字段并使用字段查询进行搜索。

于 2012-06-17T16:21:53.980 回答