Пара вопросов по mFilter2

1) У меня такая структура каталога:
Категория 1
- Подкатегория 1
  - Товар 1
Категория 2
- Товар 2
Категория 3
- Подкатегория 2
  - Товар 3
Т.е. товары лежат в дереве в разном уровне вложенности, некоторые с подкатегориями, а некоторые без. Мне нужно вывести в фильтре только головные категории, подкатегории не выводить. parent:categories выводит и категории, и подкатегории, а parent:grandparent выводит только категории, у которых есть подкатегории.

2) В каталоге больше 3000 товаров. Тестил предварительные результаты на странице примерно с 1100 товарами и 4 параметрами в фильтре. При изменении значений в фильтре думает 2-3 секунды, это хороший показатель? Можно ли его заметно улучшить, переведя товары из таблицы ресурсов в minishop2? И можно ли в таком случае как-то автоматизировать перенос?
Алексей Андреев
27 августа 2014, 09:16
modx.pro
1 931
0

Комментарии: 9

Василий Наумкин
27 августа 2014, 13:43
0
1. Написать свой новый метод, раз «из коробки» не подходят.

2. По моему, это медленно. Попробуй для начала добавить &disableSuggestions=`1`, а там смотри как изменится скорость.

Если скорость повысилась и тебе не нужны предварительные результаты — оставляй как есть. Если нужны, то думай как сократить количество фильтруемых результатов.
    Алексей Андреев
    27 августа 2014, 13:57
    0
    1. Ок, буду изучать. Думал, может какие-то полуготовые решения для этого есть.

    2. При выключении работает намного быстрее, с виду даже быстрее, чем в магазине SimpleDream. Но это реально полезная штука, не хотелось бы её выключать…
    Так что насчёт переноса в minishop2, даст это заметный профит?

    Кстати, еще мысля, может есть возможность не считать количество, а хотя бы просто отключить те варианты, у которых 0? Понимаю, что это тоже далеко не из коробки, и всё равно надо подсчитывать. Но может снизит нагрузку, если будет работать по принципу «нашёлся хотя бы один подходящий товар —> переходим к следующему значению параметра». Эдакий промежуточный вариант между полностью выключенными предварительными результатами и полным подсчётом количества. Ведь основная задача — не показывать пользователю сообщения типа «Подходящих результатов не найдено.»
      Василий Наумкин
      27 августа 2014, 14:05
      0
      Так что насчёт переноса в minishop2, даст это заметный профит?
      Неа, все данные ресурсов выбираются и кэшируются при первом запуске фильтра на странице. Дальше работа идёт не с ресурсами, а с этим кэшем данных.

      Если сами ресурсы выводятся медленно, то можно использовать pdoResources, но на фильтрации это никак не скажется.

      Конечно, можно еще улучшить хостинг, если сейчас он не очень. Проверь вот этим тестом.

      а хотя бы просто отключить те варианты, у которых 0
      И как узнать, что там 0, если не считать? Единственный способ, который я смог придумать — это прогонять все фильтры «как будто их нажали» и узнавать, сколько там будет результатов.

      Да, это напряжно, но иного способа нет.

      Подумай, может стоит как-то сократить вывод товаров, не фильтровать сразу 3000, а разбивать на категории по 500 штук.

      Там чисто математические операции при фильтрации, зависят только от количества фильтров, товаров и скорости процессора на хостинге.
    Алексей Андреев
    04 сентября 2014, 21:15
    0
    Поковырял мануал по созданию своих методов фильтрации, понял, что сам без знания php не смогу.
    Кто-нибудь может помочь за денежное вознаграждение?
      Володя
      04 сентября 2014, 21:21
      0
      А вы озвучьте сумму ДВ, думаю скорее дело пойдет…
        Алексей Андреев
        04 сентября 2014, 21:30
        0
        Тяжело прикинуть стоимость, не зная реальной сложности :)
        Я бы ориентировался на 500-1000 рублей, но кому-то это может показаться смешной суммой.
        Правда могу предложить еще работу по этому же проекту, если эту задачу решим.
          Володя
          04 сентября 2014, 21:36
          0
          напишите обсудим
          скайп: vgrish_vgrish
          почта: vgrish@gmail.com
            Игорь Терентьев
            19 декабря 2014, 13:53
            0
            У вас получилось сделать? Не поделитесь результатом?
            У меня почти такая же ситуация, только уровней больше. Где то надо дедушек выводить, а где то прадедушек.
              Володя
              19 декабря 2014, 14:11
              0
              получилось, поделится нечем…
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      9