Поиск большого списка на xPage - PullRequest
0 голосов
/ 04 июня 2019

У меня есть список примерно из 10 тысяч записей (и их количество растет), на которые я должен ссылаться в приложении xPages. У меня были ограничения поиска при использовании @DbLookup, поэтому я посмотрел на другие варианты. К сожалению, я продолжаю сталкиваться с этими ограничениями.

В настоящее время я загружаю список поиска в переменную области сеанса при загрузке страницы (которая влияет на производительность) и ссылаюсь на переменную области действия для поля со списком.

Я использую следующий простой процесс для загрузки списка для поля со списком. Это, однако, также сталкивается с ограничениями.

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

Я хотел бы, чтобы метод выполнял поиск, который мог бы обрабатывать больший список (основной приоритет) с производительностью, равной 2. Страница используется ограниченным числом пользователей, причем функция является наиболее важной.

Ответы [ 2 ]

1 голос
/ 04 июня 2019

Я сомневаюсь, что ваши пользователи хотят или должны выбрать какое-либо значение из комбинированного списка с 10k + строками.

Переосмыслив свой подход, вы можете использовать функцию автозаполнения с динамическим фильтром / поиском в режиме реального времени (переменная объема не требуется),как указано Марком.Другой подход состоит в том, чтобы разделить эти значения на несколько групп и разбить их на две или три с помощью каскадной функции выбора / поиска.Первый выбирает одну группу, второй ищет только варианты из первой группы.Таким образом, вы, вероятно, не достигнете ограничений @DbLookup.

1 голос
/ 04 июня 2019

Взгляните на этот фрагмент кода "Чистая Java-версия DbLookup & DbColumn с кешем, сортировкой и уникальностью" и либо используйте его напрямую, либо используйте его как источник вдохновения.

Выследует рассмотреть возможность сохранения списка в области приложения, поскольку кажется, что список одинаков для всех пользователей.Это означает, что вам нужно изменить код во фрагменте кода, чтобы использовать applicationScope вместо sessionScope.

...