gpt4 book ai didi

marklogic - 如何获取 Marklogic 数据库中的文档总数?

转载 作者:行者123 更新时间:2023-12-03 08:00:13 27 4
gpt4 key购买 nike

我在 Marklogic 数据库中有大约 20 个 lacs 文档。我希望我的搜索应用程序中的文档总数用于分页。为了获得我正在使用的总数

xdmp:estimate(cts:search(doc(), $query))

其中 $query 是 cts:and-query 中组合的各种查询的组合。但我没有得到正确的总数。当 $query 为空时,它显示的计数比数据库中的文档总数高得多。当我使用

xdmp:estimate(doc())

它向我显示了正确的总计,但它是静态总计,不会根据查询而改变。我想要根据响应特定查询返回的结果来计算总数,这就是为什么我将 $query 作为参数传递但它没有显示正确的总数。 fn:count() 显示正确的总数,但是当文档数量大约为 20 lacs 时,fn:count() 不起作用,因为 fn:count() xdmp:estimate() 慢。

请帮助我获得正确的返回文档总数以响应用户输入的搜索词。

最佳答案

要了解这里发生了什么,请先阅读来自 http://resources.marklogic.com/library/media/inside-marklogic 的架构白皮书。

现在试试这个测试用例:

xdmp:estimate(doc()),
xdmp:estimate(cts:search(doc(), ()))

第一个表达式将计算数据库中文档 的数量。第二个表达式将计算数据库中文档片段 的数量。因此,如果结果不同,您可能配置了片段根或片段父项。一些特殊文档还会创建额外的片段:我认为拼写词典和同义词库文档会这样做。

如果要将估计限制为 XML 文档根,请在可搜索表达式中指定文档根 QName,或者如果您不关心根元素名称,则使用 /*

xdmp:estimate(cts:search(/*, ()))

您还可以使用 cts:query 参数指定仅出现在您要统计的文档中的 QName。

关于marklogic - 如何获取 Marklogic 数据库中的文档总数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10654431/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com