如果您没有那么多文档,TypeAhead 就可以正常工作。如果我删除其中很多,则 typeAhead 有效。我认为 typeahead 选项中有一个限制 @DbColumn() 。
如何解决这个问题?这就像一个 64k 大小的问题,但任何建议都很重要
提前致谢 C.A.
最佳答案
您是否使用@DBColumn() 或@DBLookup() 来填充您的预先输入?他们确实有 64K 的限制。 (当我读到你的问题时我不确定,所以我要求澄清)。
如果是这样,您可能需要考虑查看这样的链接 Can typeahead results be returned from a java function ,
我最近做了一个包含大量文档(数百万)的项目。我使用了这个,但由于返回需要很长时间,我将其更改为获取 View 中的第一个选定条目(基于 AJAX typeahead 中的值),从该条目创建一个 ViewNavigator,并使用 setBufferMaxEntires属性来限制返回的 ViewNavigator 的大小。这使得该过程进行得相当快。
布莱恩
更新:
按照要求。我开始使用上面链接的结果,然后添加
ViewEntry startEntry = canQLView.getEntryByKey(searchValue, false);
allObjects.addElement(startEntry);
if (startEntry != null) {
ViewNavigator matchingEntries = canQLView.createViewNavFrom(startEntry);
matchingEntries.setBufferMaxEntries(10);
ViewEntry entry = matchingEntries.getFirst();
您可以看到我得到了一个条目而不是 ViewEntryCollection,从该条目启动我的 ViewNavigator,并且 setBufferMaxEntries 属性限制了获取的数量 - 您可以更改它,但较低的数字是明智的,因为它是预先输入的。
干杯, 布赖恩
关于如果您有太多文档,XPages typeAhead 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34436164/