Advanced Search - многоуровневая система фильтрации

Модуль Advanced Search - многоуровневая система фильтрации v4.12.9

упростите навигацию Ваших клиентов с помощью фасетного поиска
  • Друг форума
  • Программист
  • Автор темы
  • Администратор
  • Модер.
  • Команда форума
  • #1
ITnull добавил(а) новый ресурс:

Advanced Search - многоуровневая система фильтрации - упростите навигацию Ваших клиентов с помощью фасетного поиска

Лучший многофункциональный модуль навигации для PrestaShop! Приложение для интернет-магазинов, которые предлагают широкий спектр товаров. Advanced Search 4 позволяет добавить любое количество поисковых систем и расположить их в любом месте страницы.

Процесс поиска модуля основан на заданных фильтрах. Фильтры позволяютразнообразную и удобную навигацию. Они помогут Вашим клиентам найти продукты, которые соответствуют их критериям запроса, за минимальное количество кликов. Advanced...

Узнать больше об этом ресурсе...
 

eduard

Пользователь
За год с нами За классный аватар
Регистрация
18.05.22
Сообщения
2
Симпатии
1
  • Последнее редактирование модератором:
Последнее редактирование модератором:
Я использую версию 4.12.9. При большом количестве товаров модуль тормозит. Делал оптимизацию MySQL, немного улучшил модуль. Подскажите кто использовал 4.12.14 если оптимизация по скорости?
 
Последнее редактирование модератором:

eduard

Пользователь
За год с нами За классный аватар
Регистрация
18.05.22
Сообщения
2
Симпатии
1
  • Последнее редактирование модератором:
Последнее редактирование модератором:
Оптимизация classes/As4SearchEngine.php

Код:
  if (AdvancedSearchCoreClass::_isFilledArray($where_translatable_value_range)) {



                        $subQueryForRange = '



                        AND acpc'.(int)$id_criterion_group.'.`id_criterion` IN (



                            SELECT ac'.(int)$id_criterion_group.'.`id_criterion`



                            FROM `'._DB_PREFIX_.'pm_advancedsearch_criterion_'.(int)$search['id_search'].'` ac'.(int)$id_criterion_group.'



                            JOIN `'._DB_PREFIX_.'pm_advancedsearch_criterion_'.(int)$search['id_search'].'_link` aclink'.(int)$id_criterion_group.' ON (ac'.(int)$id_criterion_group.'.`id_criterion` = aclink'.(int)$id_criterion_group.'.`id_criterion`)



                            JOIN `'._DB_PREFIX_.'pm_advancedsearch_criterion_'.(int)$search['id_search'].'_lang` acl'.(int)$id_criterion_group.' ON (ac'.(int)$id_criterion_group.'.`id_criterion` = acl'.(int)$id_criterion_group.'.`id_criterion` AND acl'.(int)$id_criterion_group.'.`id_lang` = '.(int)$id_lang.' AND ('.implode(' OR ', $where_translatable_value_range).'))



                            WHERE ac'.(int)$id_criterion_group.'.`id_criterion_group` = '.(int)$id_criterion_group.'



                        )



                        ';



                    }

Заменить на:

Код:
   if (AdvancedSearchCoreClass::_isFilledArray($where_translatable_value_range)) {



                        $subQueryForRange = '



                        JOIN (



                            SELECT DISTINCT ac'.(int)$id_criterion_group.'.`id_criterion`



                            FROM `'._DB_PREFIX_.'pm_advancedsearch_criterion_'.(int)$search['id_search'].'` ac'.(int)$id_criterion_group.'



                            JOIN `'._DB_PREFIX_.'pm_advancedsearch_criterion_'.(int)$search['id_search'].'_link` aclink'.(int)$id_criterion_group.' ON (ac'.(int)$id_criterion_group.'.`id_criterion` = aclink'.(int)$id_criterion_group.'.`id_criterion`)



                            JOIN `'._DB_PREFIX_.'pm_advancedsearch_criterion_'.(int)$search['id_search'].'_lang` acl'.(int)$id_criterion_group.' ON (ac'.(int)$id_criterion_group.'.`id_criterion` = acl'.(int)$id_criterion_group.'.`id_criterion` AND acl'.(int)$id_criterion_group.'.`id_lang` = '.(int)$id_lang.' AND ('.implode(' OR ', $where_translatable_value_range).'))



                            WHERE ac'.(int)$id_criterion_group.'.`id_criterion_group` = '.(int)$id_criterion_group.'



                        ) ucpc'.(int)$id_criterion_group.' ON acpc'.(int)$id_criterion_group.'.`id_criterion` = ucpc'.(int)$id_criterion_group.'.`id_criterion`



                        ';



                    }

также JOIN заменить на STRAIGHT_JOIN при выборе критерия:

Код:
STRAIGHT_JOIN `'._DB_PREFIX_.'pm_advancedsearch_criterion_'.(int) $search['id_search'].'_link` aclink ON (ac.`id_criterion` = aclink.`id_criterion`'.(AdvancedSearchCoreClass::_isFilledArray($criterionsLinkToIgnore) ? ' AND aclink.`id_criterion_linked` NOT IN ('.implode(', ', array_map('intval', $criterionsLinkToIgnore)) .')' : '') . ')



             STRAIGHT_JOIN `'._DB_PREFIX_.'pm_advancedsearch_criterion_'.(int) $search['id_search'].'_list` aclist ON (ac.`id_criterion` = aclist.`id_criterion`)
 
Последнее редактирование модератором:
Регистрация
02.06.21
Донат
50.00 ₽
Сообщения
9,005
Решения
1
Симпатии
7,250
  • Друг форума
  • Программист
  • Автор темы
  • Администратор
  • Модер.
  • Команда форума
  • #4

Создайте аккаунт или войдите, чтобы комментировать

Вы должны быть участником, чтобы оставлять комментарии

Зарегистрироваться

Создайте учетную запись. Это просто!

Авторизация

Уже есть аккаунт? Авторизуйтесь.

Похожие темы

Модуль Advanced Search 5 PRO
ITnull добавил(а) новый ресурс: Advanced Search 5 PRO - advanced Search 5 PRO+Filters and...
Ответы
0
Просмотры
774
Модуль Mega Filter PRO
ITnull добавил(а) новый ресурс: Mega Filter PRO - продвинутая и удобная в использовании система...
Ответы
2
Просмотры
5K
Сверху Снизу