search - 将 cts:search 的逻辑转换为 search:search
问题描述
我一直在与cts:search
我的项目合作,但不知何故,感觉结果时间比预期的要长一些。可以search:search
帮忙吗?如果是这样,怎么做?
例如,我的查询为
let $query := cts:and-query((cts:element-value-query(xs:QName("Applicability"),"Yes")))
我想获取文档 URI。我正在使用:
cts:search(collection("abc"), $query)
它返回了 URI,但是如何使用它来提取它search:search
?或者除了搜索之外还有什么可以帮助提高执行时间的吗?
解决方案
您是对检索文档感兴趣,还是只对 URI 感兴趣?
如果您只想检索包含具有该值的元素的文档的 URI,请使用cts:uris()
而不是cts:search()
. 该cts:uris()
函数未经过滤运行,只会从词典中返回 URI,而不是检索所有文档,这比cts:search
不需要内容的成本高得多。
cts:uris("", (), cts:and-query(( collection("abc"), $query)) )
使用 时cts:search
,我会尝试的第一件事是将unfiltered
选项添加到您的搜索中,看看是否有帮助。
默认cts:search
执行过滤:
过滤搜索(默认)。过滤搜索消除了任何误报匹配,并正确解决了同一片段中存在多个候选匹配的情况。过滤后的搜索结果完全满足指定
cts:query
。
因此,尝试使用“未过滤”选项执行相同的查询:
cts:search(collection("abc"), $query, "unfiltered")
您还可以使用 element-range-index 或 field-range- index在该 Applicability 元素上创建索引,然后使用适当的范围查询而不是值查询。
推荐阅读
- javascript - javascript 错误:需要('fs')。为什么?
- python - request.get() 中的 resp.text 将属性值作为 - 而不是实际值
- flutter - Flutter,NoSuchMethod:在 null 上调用了 getter 'notes'
- regex - 涉及 grep 的相同 bash 脚本在一台机器上成功,但在另一台机器上失败
- c - 与静态库链接
- angular - Angular 9 + FontAwesome 0.6:“错误 NG8001:'fa-icon' 不是已知元素”
- ipfs - 如何避免 IPFS DNSLINK 的名称冲突?
- swift - 我的协议不起作用,它有什么问题?
- python - python中大列表的反向操作很慢
- python-3.x - ValueError: 层 simple_rnn_1 的输入 0 与层不兼容:预期 ndim=3,发现 ndim=2。收到的完整形状:[无,50]