Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xquery 移动到cts的位置:搜索_Xquery_Marklogic_Cts Search - Fatal编程技术网

Xquery 移动到cts的位置:搜索

Xquery 移动到cts的位置:搜索,xquery,marklogic,cts-search,Xquery,Marklogic,Cts Search,鉴于此查询: for $d in cts:search( fn:doc(), cts:and-query( ( cts:collection-query(('InProgress_Audit')) ) )) where not(fn:contains($d//TitleDate/text(),"Z")) return <p>{docum

鉴于此查询:

for $d in cts:search(
      fn:doc(),
      cts:and-query(
       (            
         cts:collection-query(('InProgress_Audit'))
       )
      ))          
      where not(fn:contains($d//TitleDate/text(),"Z"))
      return <p>{document-uri($d)}</p>
用于cts中的$d:search(
fn:doc(),
cts:和查询(
(            
cts:集合查询(('InProgress\u Audit'))
)
))          
其中不包含(fn:contains($d//TitleDate/text(),“Z”))
返回{documenturi($d)}


如何将“where”约束移动到CTS搜索查询中?

这将使用
CTS:query
应用约束:

for $d in cts:search(
  fn:doc(),
  cts:and-not-query(            
     cts:collection-query('InProgress_Audit'),
     cts:element-query(xs:QName('TitleDate'),
       cts:word-query('*Z*', 'wildcarded'))
  ))
return <p>{document-uri($d)}</p>
使用cts:uri将比多次重复调用
document-uri()
更快。但是,您需要在设置中启用URI词典选项。将所有这些放在一起,查询将如下所示:

cts:uris((), 'document',
  cts:and-not-query((            
     cts:collection-query('InProgress_Audit'),
     cts:element-value-query(xs:QName('TitleDate'), 
       '*Z*', 'wildcarded')
  ))) ! element p { . }

回答很好,但是
cts:element-value查询
可能比嵌套的
cts:element查询
cts:word查询
执行得更好。另外,鉴于对
文档uri
的调用,使用
cts:uri
可能比使用
cts:search
更好:举个例子。
cts:uris((), 'document',
  cts:and-not-query((            
     cts:collection-query('InProgress_Audit'),
     cts:element-value-query(xs:QName('TitleDate'), 
       '*Z*', 'wildcarded')
  ))) ! element p { . }