首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >超过时间限制,在Markligic Cts中:搜索

超过时间限制,在Markligic Cts中:搜索
EN

Stack Overflow用户
提问于 2012-04-18 14:48:22
回答 2查看 791关注 0票数 3

我的marklogic服务器中有大约53,000,000个文档,每个文档包含一条记录。

代码语言:javascript
复制
xquery version "1.0-ml";
  declare namespace pa = "http://www.contata.com/pa";  
  let $query :=  
         cts:or-query((  
            cts:element-word-query(  
              xs:QName("pa:name"), "SMITH"  
            ),  
            cts:element-word-query(  
              xs:QName("pa:address-1"),  ""   
            ),  
            cts:element-word-query(  
              xs:QName("pa:address-2"),  ""   
            ),
            cts:element-word-query(   
              xs:QName("pa:address-3"),  ""   
            ),  
             cts:element-word-query(  
              xs:QName("pa:city"),  ""   
            )  
                    )) return   

cts:search(fn:doc(),$query)[5100000 to 5300000]

当我执行上面提到的查询时,需要很长时间才能执行,并给出以下错误

1.0-ml XDMP扩展名:cts: cts:element-word-query(xs:QName("pa:address-1"),(fn:doc(),cts:or-query((cts:element-word-query(xs:QName("pa:name"),"SMITH",("lang=en"),1),cts:element-word-query(xs:QName("pa:address-2"),"",("lang=en"),1),cts:element-word-query(xs:QName(“pa:address-2”),"",("lang=en"),1),...) --超过时间限制

但是当我执行cts:search(fn:doc(),$query)[1000 to 2000]时,它成功地执行了。

还有一个问题,如果我已经加载了我所有的文档,那么在从RecordLoader实用程序加载后如何在它们上创建索引。

EN

回答 2

Stack Overflow用户

发布于 2012-04-18 23:23:38

查看“未过滤”选项,并考虑使用“search:search”。

您也可以增加时间限制,但可能不想这样做。使用筛选搜索获得第500,000个结果需要检查500000个文档,这可能需要多达500000次磁盘读取。如果你的磁盘每秒能处理100次,那就是5000秒。

票数 4
EN

Stack Overflow用户

发布于 2012-04-18 15:50:07

您正在显示200.000个搜索结果。试着一次少展示一些。如果您使用查询控制台或CQ分析器,您将看到不是cts:搜索花费了这么多时间,而是获取了200k个文档。

哈!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10204256

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档