Java 在marklogic中搜索指定条件的文档时禁用分页

Java 在marklogic中搜索指定条件的文档时禁用分页,java,marklogic,Java,Marklogic,我通过提供StructuredQuery定义,使用JsonDocumentManager在marklogic中进行搜索。结果我得到了一个DocumentPage,默认为50条记录(页面长度在JsonDocumentManager中默认)。但我想一次检索所有文档 我可以在这里看到两种解决方法,一种是将页面长度增加到我提供的条件无法超过的限制,另一种是在循环中的jsonDocumentManager.search(querydefination,pageOffset)中提供页面偏移量,直到docum

我通过提供StructuredQuery定义,使用JsonDocumentManager在marklogic中进行搜索。结果我得到了一个DocumentPage,默认为50条记录(页面长度在JsonDocumentManager中默认)。但我想一次检索所有文档

我可以在这里看到两种解决方法,一种是将页面长度增加到我提供的条件无法超过的限制,另一种是在循环中的
jsonDocumentManager.search(querydefination,pageOffset)
中提供页面偏移量,直到documentPage.isLastPage返回true


有人能告诉我更多的选择吗?是否有任何分页参数可以切换为false以不允许marklogic进行分页搜索?

正如@grtjn所述,最好总是分页,如果可以并行运行请求,则分页速度会更快。因此,JavaAPI没有一个标志来获取所有结果。它所构建的层:restapi和search:search API也没有

构建它们的层cts:search使用服务器端惰性计算在引擎盖下高效地分页,同时似乎可以得到所有结果。这样说来,如果除了你已经知道的以外,你必须有另外的选择,考虑创建一个并直接调用CTS:Search API。
值得一提的是,在MarkLogic 9中,我们将提供,它将在客户端的后台为您完成所有分页和并行化。它专门为需要导出或操作大型数据集的长时间运行的数据移动应用程序而设计。如果有兴趣的话,请考虑加入早期的Access程序,你可以尝试一下。< P> > @ GRTJN,最好是分页,如果你能并行运行请求,甚至更快。因此,JavaAPI没有一个标志来获取所有结果。它所构建的层:restapi和search:search API也没有

构建它们的层cts:search使用服务器端惰性计算在引擎盖下高效地分页,同时似乎可以得到所有结果。这样说来,如果除了你已经知道的以外,你必须有另外的选择,考虑创建一个并直接调用CTS:Search API。
值得一提的是,在MarkLogic 9中,我们将提供,它将在客户端的后台为您完成所有分页和并行化。它专门为需要导出或操作大型数据集的长时间运行的数据移动应用程序而设计。如果有兴趣的话,请考虑加入早期的Access程序,你可以尝试一下。

在一个请求中拉入所有文档通常是不明智的,除非你确信只有一个有限的数字,比如小于500。除此之外,通常最明智的做法是并行运行请求或按顺序迭代页面。你能详细说明一下目的吗?谢谢grtjn的回复。我的用例是。。我想通过从数据库中获取通过指定搜索条件的所有文档来创建csv文件。预计每天的销售量约为70k。。因此,我可以增加页面大小,但正如您所建议的,这不是一个好方法,或者我可以在循环搜索中提供页面偏移量。您能告诉我我应该遵循的推荐方法吗?70k非常大,但对于单个页面来说不是太大,假设您可以在配置的请求超时内从服务器获取所有内容。但是,您可能会发现循环分页效果更好,因为它允许服务器将内存分配给较小的请求,而不是一个大请求。在一个请求中放入所有文档通常是不明智的,除非您确定只有有限的数量,例如少于500个。除此之外,通常最明智的做法是并行运行请求或按顺序迭代页面。你能详细说明一下目的吗?谢谢grtjn的回复。我的用例是。。我想通过从数据库中获取通过指定搜索条件的所有文档来创建csv文件。预计每天的销售量约为70k。。因此,我可以增加页面大小,但正如您所建议的,这不是一个好方法,或者我可以在循环搜索中提供页面偏移量。您能告诉我我应该遵循的推荐方法吗?70k非常大,但对于单个页面来说不是太大,假设您可以在配置的请求超时内从服务器获取所有内容。但是,您可能会发现循环分页效果更好,因为它允许服务器将内存分配给较小的请求,而不是一个大请求。。。我将尝试使用资源扩展。。谢谢你的回复。嗨,山姆,我试过使用资源扩展。不过我有一个问题。。。在前面使用jsonDocManager.search(..)时,我获取了DocumentPage,然后对其进行迭代,返回DocumentRecord,这有助于我使用DocumentMetadataHandle获取documentUri和文档元数据。在这种情况下,我们可以获取文档元数据和文档uri吗?我想使用javascript并返回由文档uri、文档元数据和文档内容组成的对象是我可以遵循的方法。然后我可以利用资源扩展来获取这个对象,然后协调工作?正确,您可以返回一个自定义XML或JSON负载,其中包含您需要的所有信息。但是,我建议要么在循环中分页,要么只是增加页面大小,而不是创建自定义扩展。谢谢Sam。。。我将尝试使用资源扩展。。谢谢你的回复。嗨,山姆,我试过使用资源扩展。不过我有一个问题。。。在前面使用jsonDocManager.search(..)时,我获取了DocumentPage,然后迭代它,返回DocumentRecord,这有助于获取documentUr