在 xPage 上查找大列表

Lookup for large list on xPage

我有大约 10K 个条目的列表(并且还在增加)我需要能够在 xPages 应用程序中引用。我在使用@DbLookup 时遇到了查找限制,因此查看了其他选项。不幸的是,我继续 运行 这些限制。

我目前正在页面加载时将查找列表加载到会话范围变量中(这会影响性能),并引用组合框的范围变量。

我正在使用以下简单过程来加载组合框的列表。然而,这也 运行 受到限制。

var lookupView:NotesView = database.getView("LookupView");
sessionScope.lookupList = lookupView.getColumnValues(0) + "|" + lookupView.getColumnValues(4);

我想要一种执行查找的方法,该方法可以处理更大的列表(主要优先级),性能为 2。该页面由有限数量的用户使用,功能最重要。

看看这个代码片段 "Pure Java version of DbLookup & DbColumn, with cache, sort and unique" 并直接使用它或将其用作灵感。

您应该考虑将该列表存储在应用程序范围内,因为该列表似乎对所有用户都是相同的。这意味着您需要更改代码片段中的代码以使用 applicationScope 而不是 sessionScope。

我怀疑您的用户想要或需要从 10k+ 行的组合中选择一些价值。

重新考虑您的方法,您可以在实时视图中使用动态 filter/search 的自动完成功能(不需要范围变量),正如 Mark 所指出的。另一种方法是将该值分成一些组,然后使用级联 choose/lookup 函数将该组合拆分为两个或三个。第一个选择一组,第二个只查找第一组的选项。这样你可能就不会达到@DbLookup 的限制。