【问题标题】:How should i proper page queries in IBM FileNet?我应该如何在 IBM FileNet 中进行正确的页面查询?
【发布时间】:2015-03-04 07:04:06
【问题描述】:

在 FileNet 中是否有任何方法可以对查询进行分页?我有一个带有分页的网格控件,因此我需要获取查询中的元素总数以及获取结果示例第 3 页的可能性(任何页面大小)。我只找到了 TOP 运算符,但有没有 SKIP 或 COUNT?

【问题讨论】:

    标签: filenet-p8 filenet filenet-content-engine filenet-ce-sql


    【解决方案1】:

    没有办法完全实现你想要的。造成这种情况的主要原因是 Content Engine 对查询返回的所有行进行计数非常昂贵(假设有数千行)。可能必须对每个返回的对象应用相当复杂的安全限制。这将有效地从查询结果中排除一些对象,影响结果计数。评估多个对象的有效安全权限会降低性能,因此可以避免。这就是为什么您在查询语言中没有 COUNT 或其他聚合函数的原因。

    如果您可以将网格中显示的记录数量限制在一个合理的范围内,那么COUNT_LIMIT 可能对您有用——请参阅Query OptionsgetTotalCount()。但是,这将需要循环到所需的页面,其固有的性能缺陷。

    【讨论】:

    • @Horosho 这可能会让你产生重新思考 UI 的想法。毕竟这不是数据库。
    • 可能是,但是网格中的分页和随机页面访问是标准功能,所以对UI来说确实是很大的限制,尤其是对于WebUI
    • @Horosho 关键是要质疑为什么有人需要随机页面访问。很容易证明这没有实用价值。 UI 应该由用户的真实需求驱动,而不是被认为是“标准”。
    【解决方案2】:

    这是一个很好的链接,其中包含一个关于分页如何工作的后端示例:

    Paging example

    至于总数,这应该在 pageiterator 对象中: pageIterator api page

    在这种情况下,您需要手动跟踪 UI 中的分页

    或者作为替代方案,安装、配置和实施 CMIS 以执行将页面跳过作为默认功能的操作

    CMIS infocenter

    【讨论】:

    • 这一章我都看过了,但是还是没看懂,怎么才能逐页获取需要呢?我应该循环页面直到我得到它?我怎样才能得到总数?
    • 在我工作的一个项目中,他们正是这样做的,相应地设置页面大小并翻页。该解决方案重做整个查询,但如果你能保持它的状态,你应该能够跳过查询的重做。这实际上是用 cmis 完成的。也许这是一个很好的解决方案,因为它是访问文档管理系统的 ecm 广泛标准。 www-01.ibm.com/support/knowledgecenter/SSNW2F_5.2.0/… 如果没有,您将不得不手动进行跳过计数来跟踪您所在的页面
    • 我认为这看起来有点“不整洁的代码”,我仍然无法完全理解它。现在我获取所有数据并将其分页到客户端 - 这也不是一个好主意 =(
    • 根据文档,页面迭代器应该有一个总计数函数:www-01.ibm.com/support/knowledgecenter/SSNW2F_5.2.0/… 这可以帮助计算总计数
    • 我尝试使用跳页,但是 10-15 之后的页面的结果很慢。 FileNet API 执行 10-15 次查询。我正在寻找“最佳实践”。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-15
    相关资源
    最近更新 更多