Grails Динамический поиск, как Google - PullRequest
2 голосов
/ 16 февраля 2011

Я создаю веб-приложение Grails и довольно плохо знаком с Grails. Я ищу сделать окно / панель фильтра поиска, где, как сотрудник начинает вводить имя клиента / номер телефона или номер счета в нем, фильтрует результаты в окне ниже. Вроде как гугл живой поиск. Затем сотрудник может выбрать правильного человека из поля ниже. Я пытаюсь найти данные MySQL. Я посмотрел на плагины панели поиска и фильтра, и они говорят, что они предназначены для поиска ... не то, что они динамически отображаются в зависимости от того, что вводится в поле. Я поддерживаю около 30 клиентских компьютеров, но они выполняют от 3000 до 5000 запросов в день. В основном поиск по фамилии или телефону.

Как лучше всего реализовать этот вид автозаполнения с результатами динамического поиска?

Ответы [ 2 ]

1 голос
/ 17 февраля 2011

Плагин GrailsUI также имеет автозаполнение. К сожалению, этот плагин больше не поддерживается, но автозаполнение работает. И это хорошо задокументировано. Наверное, лучше всего пойти jquery, но вы можете взглянуть на GrailsUI.

0 голосов
/ 16 февраля 2011

вам нужно поставить конечную точку сервера для поиска.Вам необходимо создать или интегрировать существующий виджет автозаполнения на стороне клиента.http://docs.jquery.com/UI/Autocomplete#options. По сути, вы настраиваете этот виджет для перехода к URL-адресу после выполнения определенных условий (например, пользователю необходимо ввести 2 символа, прежде чем будет выполнен поиск)

Конечная точка службы может быть очень простой, ноон должен быть быстрым, поэтому вы можете рассмотреть возможность использования кэша второго уровня, если вы еще этого не сделали.Или вы можете начать без кеша и использовать его, только если производительность становится проблемой.

Поскольку вы определили поиск по имени или номеру телефона, вам, конечно, нужно будет использовать jquery один раз для каждого, и вам потребуется метод обслуживания для каждого (или один метод обслуживания, который выполняет оба действия, передаваяparam для byName или byPhone, но я бы просто сделал отдельные услуги).

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

...