Запрос, отображение и фильтрация больших списков баз данных - PullRequest
0 голосов
/ 20 ноября 2011

Я пытаюсь определить лучший метод сбора большого списка из базы данных, а затем отображать и фильтровать результаты на стороне клиента. Позвольте привести краткий пример:

Пример: У меня есть база данных с данными клиентов, и в настоящее время она содержит около 2000 записей. Это число постоянно увеличивается. На моем веб-сайте есть страница, на которой я хочу иметь возможность запрашивать указанную базу данных на основе такой информации, как имя, адрес электронной почты, номер телефона и т. Д., И, конечно, отображать результаты (когда пользователь вводит данные в Smith, он возвращает все записи, содержащие имя Смит). Я планирую использовать AJAX, чтобы я мог запрашивать базу данных и отображать результаты на лету, подобно тому, как это делает Google. Когда пользователь начинает поиск, результаты будут отображаться на странице по мере их обнаружения.

Возможные решения: К сожалению, я поставлен в тупик о том, как реализовать что-то подобное. Я рассматриваю возможность использования шаблона ValueList. Когда пользователь впервые загружает страницу, должен ли я запрашивать базу данных и сохранять каждую запись в коллекции, а затем искать в этом списке коллекций и отображать результаты на моей странице jsp? По сути, создание базы данных Java. Что мне нравится в шаблоне ValueList, так это то, что я сильно ударил по загрузке страницы и выгрузил всю базу данных в объекты, хранящиеся в списке. Что если база данных будет больше, скажем, 2 000 000 записей?

Или я должен использовать простой шаблон DOA без ValueList и запрашивать базу данных для каждого отдельного поиска? Это приведет к большому количеству запросов к базе данных, особенно учитывая, что я планирую возвращать результаты, когда пользователь вводит данные в поле поиска.

Редактировать: Чем больше я об этом думаю, тем больше это вопрос AJAX. Моя самая большая проблема должна заключаться в том, как запросить мою базу данных, пока пользователь печатает. Можно ли настроить прослушиватель для прослушивания, чтобы пользователь прекратил печатать, а затем выполнил запрос?

1 Ответ

1 голос
/ 19 декабря 2011

Я бы использовал Solr для этого типа задачи.

Поля, которые вы собираетесь использовать для поиска, должны быть проиндексированы с помощью Solr.

Затем вы выполняете ajax-запрос к Solr и получаете результат.Вы можете установить порядок, количество элементов на странице и показывать результаты только для текущей страницы.

В Solr есть много других полезных функций.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...