, прежде чем мы начнем, позвольте мне дать вам некоторую информацию о нашей среде:
- полностью написана на Java / J2EE.
- он разработан для развертывания в GAE "Google App Engine"
- его графический интерфейс разработан GWT.
- наша проблема в основной проблеме разработки.
Вот моя проблема,
- Я создаю веб-приложение, в котором пользователи "онлайн" могут искать записи на этом веб-сайте.
- Сначала откройте веб-сайт careerbuilder.com и выполните поиск по любому ключевому слову, например, «Бухгалтерский учет».
- откроется страница, в [Узком поиске] есть способ, позволяющий вам легче перейти к вашей целевой работе «давайте назовем это фильтром», множество заданий там внизу.
- поисковый фильтр включает подфильтры [Категория, Компания, Город, Штат].
- каждый субфильтр имеет много вариантов или вариантов.например, для «Штат имеет (Калифорния, Айова, Канзас и т. д.)» рядом с каждым из них указано количество заданий, которое соответствует вашему текущему выбору фильтра / подфильтра.Вы найдете его в скобках, т.е. (23)
Теперь мы хотим разрешить эту функцию фильтра и хотим сделать ее быстрой.Создание запроса подсчета для каждой опции дополнительного фильтра будет эффективной идеей.
Имейте в виду, что:
- пользователи могут добавлять / удалять записи.
- также списки могут истечь.
- количество подфильтров для нас выше «может достигать 20».
- каждый субфильтр имеет от 2 до 200 опций.
Мы ищем лучшую практику или предложение алгоритма или чего-либо еще для решения этой проблемы.
вот 2 варианта, которые мы достигли до сих пор:
1. Построение таблицы статистики, чтобы сохранить в ней эти результаты, а затем обновлять ее при каждом изменении номера списков, а также сохранять ночной фон.работа по пересчету результатов.и мы можем показать количество результатов непосредственно из этой таблицы.
2.строить древовидную структуру данных для загрузки в память и сохранения в таблице при каждом ее обновлении.это дерево содержит результирующие числа списков в каждой опции подфильтров.
хотя я все еще думаю, что этого недостаточно !!!Кто-нибудь может предложить лучшую идею?Все комментарии, вопросы, предложения очень приветствуются.
С уважением
Мохаммед С.