基于JAVA API的组合查询Marklogic性能

基于JAVA API的组合查询Marklogic性能,marklogic,Marklogic,我已经在我的8GB RAM机器上安装了Marklogic 8,并插入了1000万个文档。我正在使用Java API查询数据库并获得前1000个匹配的文档。我的查询(Rawcombined query)包括2个路径范围索引的JSON属性和一个单词查询。当我在java程序中记录所用的时间时,搜索功能需要20秒才能获得1000个文档 有谁能告诉我是什么因素导致了这些性能下降 我建议使用较小的页面,并允许对结果进行分页。搜索速度很快,提取实际文档的速度相对较慢。每页最多拉10到50个文档以获得良好的性能

我已经在我的8GB RAM机器上安装了Marklogic 8,并插入了1000万个文档。我正在使用Java API查询数据库并获得前1000个匹配的文档。我的查询(Rawcombined query)包括2个路径范围索引的JSON属性和一个单词查询。当我在java程序中记录所用的时间时,搜索功能需要20秒才能获得1000个文档


有谁能告诉我是什么因素导致了这些性能下降

我建议使用较小的页面,并允许对结果进行分页。搜索速度很快,提取实际文档的速度相对较慢。每页最多拉10到50个文档以获得良好的性能


我建议使用较小的页面,并允许对结果进行分页。搜索速度很快,提取实际文档的速度相对较慢。每页最多拉10到50个文档以获得良好的性能


确保查询未经筛选运行,这意味着可以根据索引解析所有查询子句。这可能需要创建一些范围索引。考虑到您提供的伪查询,我看不到任何需要过滤步骤的内容。如果您的查询运行非常慢,则可能是硬件大小、操作系统配置或查询有问题。检查运行缓慢的查询的第一件事是确保它未经过滤地运行


请参阅文档中的,具体到Java API,。

确保查询未经筛选运行,这意味着可以根据索引解析所有查询子句。这可能需要创建一些范围索引。考虑到您提供的伪查询,我看不到任何需要过滤步骤的内容。如果您的查询运行非常慢,则可能是硬件大小、操作系统配置或查询有问题。检查运行缓慢的查询的第一件事是确保它未经过滤地运行



请参阅文档中的Java API部分。

感谢@grtjn的建议。请分享您的查询、代码和一些具有代表性的示例文档?无论您使用的是批量API(DocumentManager.search)还是搜索API(QueryManager.search),这都会产生很大的不同。此外,无论您是使用摘要、从文档中提取,还是取回整个文档。另外,你能详细说明一下为什么你想取回1000个文档而不是一个正常的页面大小(10-50)吗?我使用的是搜索API。qm.search(querydef,resultsHandle);MatchDocumentSummary[]docSummaries=resultsHandle.getMatchResults();System.out.println(“列表”+docSummaries.length+“文档:\n”);我尝试分页以获取50个文档,但即使是现在,响应时间也是17秒。每次获取运行的统计信息时,我都会重新启动marklogic server(以确保查询在系统中第一次运行)。marklogic重新启动是否会导致如此大的响应时间?感谢您提供的代码片段。现在我知道你不用散装的。感谢您尝试使用50页大小的页面,现在我们知道,除非您的文档很大,否则文档下载不太可能减慢速度。您能分享您的查询、搜索选项和一些有代表性的示例文档吗?首先要检查的事情之一是您的查询是否未经筛选运行。有了这么长的响应时间,它可能正在进行过滤,这真的会减慢速度。感谢@grtjn的建议。您能分享您的查询、代码和一些有代表性的示例文档吗?无论您使用的是批量API(DocumentManager.search)还是搜索API(QueryManager.search),这都会产生很大的不同。此外,无论您是使用摘要、从文档中提取,还是取回整个文档。另外,你能详细说明一下为什么你想取回1000个文档而不是一个正常的页面大小(10-50)吗?我使用的是搜索API。qm.search(querydef,resultsHandle);MatchDocumentSummary[]docSummaries=resultsHandle.getMatchResults();System.out.println(“列表”+docSummaries.length+“文档:\n”);我尝试分页以获取50个文档,但即使是现在,响应时间也是17秒。每次获取运行的统计信息时,我都会重新启动marklogic server(以确保查询在系统中第一次运行)。marklogic重新启动是否会导致如此大的响应时间?感谢您提供的代码片段。现在我知道你不用散装的。感谢您尝试使用50页大小的页面,现在我们知道,除非您的文档很大,否则文档下载不太可能减慢速度。您能分享您的查询、搜索选项和一些有代表性的示例文档吗?首先要检查的事情之一是您的查询是否未经筛选运行。有了这样的响应时间,它可能会进行过滤,这真的会减慢速度。谢谢@SamMefford。我尝试了未过滤的搜索,但响应时间不是很长。现在的响应时间是13秒。您是否可以通过任何方式共享您的实际查询、搜索选项和索引?我必须共享原始详细信息,因为数据具有PII。我理解。您是否可以共享一个经过消毒的版本,其中更改字段名称和值以匹配您共享的文档的样本结构?挑战在于,您共享的伪查询不清楚您使用的是范围索引、容器查询还是其他查询。没有搜索选项和索引,还有很多未知的东西。你通读了吗?谢谢@SamMefford。我尝试了未经过滤的搜索,但响应时间不长。现在的响应时间是13秒。您是否可以通过任何方式共享您的实际查询、搜索选项和索引?我必须共享原始详细信息,因为数据具有PII。我理解。您是否可以共享一个经过消毒的版本,其中更改字段名称和值以匹配您共享的文档的样本结构?挑战在于,您共享的伪查询不清楚您是否在使用r