【问题标题】:Marklogic Structured Query DefinitionMarklogic 结构化查询定义
【发布时间】:2017-12-27 05:31:42
【问题描述】:

我正在使用结构化查询从数据库中获取 10 万条消息,如下所示:

sqb.and(
          sqb.word(sqb.jsonProperty(status.name), toBeReported.name),
          sqb.word(sqb.jsonProperty(dataCategory.name), param.businessCategory),
          sqb.range(sqb.jsonProperty(creationDate.name), marklogicDateFormat.name, Operator.LE, DateUtil.printFpmlDateTime(param.messagesTime)))

然后,使用 optionsName 对其进行排序。

我有时会收到超时错误,例如:

SVC-EXTIME: search-impl:apply-search($querydef) -- Time limit exceeded

有人可以告诉我结构化查询是使未过滤搜索还是过滤搜索?我们可以进行结构化查询以进行未过滤的搜索吗?

【问题讨论】:

    标签: marklogic marklogic-8


    【解决方案1】:

    查询是否尝试在单个请求中检索所有 100k 消息?

    推荐的方法是对结果列表进行分页,在每个请求中获取 100 到 1,000 个文档(最佳位置可能因文档大小和其他因素而异),并在请求下一页的同时处理每个响应页面以获得最佳吞吐量。

    希望对您有所帮助,

    【讨论】:

    • 我正在检索这批 1000 条记录中的消息。所以在它获取了大约 5 万条记录后,我得到了这个异常
    • 查询是否在多语句事务中运行?如果是这样,更好的方法是运行时间点查询。如果您提供执行搜索的代码而不仅仅是查询,那么有人可能会提供更有用的建议。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多