繁体   English   中英

MarkLogic:使用cts:search查找没有文本的元素

[英]MarkLogic: using cts:search to find elements without text

我想找到在某个元素中没有任何文本的所有文档 - 这可行,但速度很慢:

let $not-empty := for $i in cts:search(//foo[@class="bar"][text()[not(. = '')]] ,
                                  cts:and-query(())
                                    ) 
                                 return base-uri($i)

如何有效地使用索引来搜索没有文本节点的元素以及文本节点不包含任何字符的位置?

搜索将以更简单的可搜索路径和更复杂的查询运行得更快。 我认为这是你可以使用cts函数最接近的:

cts:search(
  //foo,
  cts:and-query((
    cts:element-attribute-value-query(xs:QName('foo'), xs:QName('class'), 'bar'),
    cts:element-value-query(xs:QName('foo'), '')
  ))
)

HTH!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM