Всего 123 803 комментария

Алексей Смирнов
20 октября 2022, 16:06
0
Я про опции, тк кол-во значений (флажков) не особо влияют на результат.
Поэтому у меня в 20 опциях я делал примерно то ли 10 то ли 20 значений. те 20 опций * 10 значений — скромные 200 флажков (как вы выражаетесь).
Александр Туниеков
20 октября 2022, 16:02
0
Я писал свой магаз тестовый с нуля и делал другую структуру данных
Поделись структурой плиз.
Александр Туниеков
20 октября 2022, 15:57
0
я тестировал 200к ресурсов с 20ю опциями
С 20 опциями или с 20 флажками?

У меня 400 флажков. А у тебя сколько?
у вас что-то не то с БД.
БД стандартное.
Алексей Смирнов
20 октября 2022, 15:35
0
попробуйте combo-box или listbox. Возможно что-то сработает, но не уверен — не пробовал.
Алексей Смирнов
20 октября 2022, 15:30
0
Вот вам материал еще подумать:
> 3.mFilter2
Странно что у вас получились цифры под 39 сек для 11к товаров. — у вас что-то не то с БД.
Тк я тестировал 200к ресурсов с 20ю опциями и фильтрация + выборка проходила примерно 1..3 сек.
Во вторых, чтобы ускорить выборку даже в самом msProduct minishop2 необходимо переписывать фильтр на прямые запросы. тк сжирает ресурсы и время в основном xpdo modx.
Я писал свой магаз тестовый с нуля и делал другую структуру данных. и у меня получались выборки опций до 0,5 сек для 200к товаров с 20...40 опциями. А из кеша вообще копейки.
Александр Туниеков
20 октября 2022, 14:40
0
Manticore Search вариация Sphinx. Вчера пробовал установить OpenSearch вариацию ElasticSearch. Не поднял. Не справился с настройкой Docker :-(. Дальше без докера попробую, но пока некогда. Через неделю две пробовать буду.
Вариации Sphinx, ElasticSearch требуют vds или отдельного выделенного сервера или даже кластера серверов. Они прожорливы. ElasticSearch требует минимум 60гб на сервере. OpenSearch у меня не запускался пока размер диска на виртуалке до 100гб не поднял.
OpenSearch можно на https://aws.amazon.com/ru/opensearch-service/ подключить. Есть бесплатный тариф, но не понятно насколько его хватает. Платный тариф 1604,83 USD
Сергей Карпович
20 октября 2022, 12:42
0
нашелся виновник — плагин YandexMarket2.
разработчику написал в техподдержку, будем уже с ним решать
Павел Голубев
20 октября 2022, 12:10
0
ок, тогда можно рассмотреть типа такой штуки manticoresearch.com. Фасетный поиск из коробки manual.manticoresearch.com/Searching/Faceted_search и php клиент есть github.com/manticoresoftware/manticoresearch-php
Сергей Карпович
20 октября 2022, 11:24
0
Не меняли, стоит 7.4, попробовал обновить до 8 — проблема осталась
Роман
20 октября 2022, 09:35
0
Может на сервере версию php поменяли.
Александр Туниеков
20 октября 2022, 05:20
+1
заранее просчитывать все возможные пересечения для фасетного фильтра
Тут одна проблема. Не знаю точную формулу, но знаю что кол-ко комбинаций пропорционально n!.. То есть, если кол-во флажков в фильтре около 200, то кол-во всех возможных комбинаций(ты назвал пересечения, но правильней комбинации. Если я правильно понял твою мысль :-)) около 200!.. Это 7886578673 6479050355 2363213932 1850622951 3597768717 3263294742 5332443594 4996340334 2920304284 0119846239 0417721213 8919638830 2576427902 4263710506 1926624952 8299311134 6285727076 3317237396 9889439224 4562145166 4240254033 2918641312 2742829485 3277524242 4075739032 4032125740 5579568660 2260319041 7032406235 1700858796 1789222227 8962370389 7374720000 0000000000 0000000000 0000000000 0000000000 00000 комбинаций. Не знаю как это работает в Битрих, но наверно до 200 флажков они не доходят. Максимум 50. И кеш по отзывам строится у них в течении 8 часов.
Тот же подход но для Redis habr.com/ru/company/oleg-bunin/blog/316652/
Там не тот же подход. Там вариация на тему массива значений опций, как в mFilter2, только в базе Redis.
Допустим, у нас в Redis-е для Samsung-а есть вот 4 товара — 201, 202, 203, 204, а для Philips — 301, 302, 303. Ключ, соответственно, содержит ID рубрики, фильтр и вариант фильтра. Если пользователь выбирает в панели фильтров Samsung, мы запрашиваем в Redis, получаем ID товаров, отдаем их в компонент списка товаров, и наш компонент отображает 4 товара. Если пользователь выбирает еще производителя Philips, мы и делаем два запроса в Redis, берем объединение этих множеств и, соответственно, показываем семь элементов в нашем каталоге.
Владимир
19 октября 2022, 16:04
+1
Я отредактировай файл translitor.class.php
Строку
$title = preg_replace('![^'.preg_quote($separator).'\pL\pN\s]+!u', '', $this->lower($title));
заменил на
$title = preg_replace('![^'.preg_quote($separator).'\.\pL\pN\s]+!u', '', $this->lower($title));
И норм, теперь точки на месте)
mekirile
19 октября 2022, 14:57
0
Добрый день. Умеет ли дополнение выгружать модификации как отдельные товары на Яндекс.Маркет?
Павел Голубев
19 октября 2022, 14:57
0
Можно попробовать вариант заранее просчитывать все возможные пересечения для фасетного фильтра и хранить эти варианты в кеш-таблице, которую в mysql сделать in-memory. Кажется так работает «умный фильтр» в Битрикс www.intervolga.ru/blog/projects/bitrix-smart-filter-citilink-style/

Тот же подход но для Redis habr.com/ru/company/oleg-bunin/blog/316652/
Павел Голубев
19 октября 2022, 13:05
0
Да и индексирует новые товары крайне медленно. А дефолтный внешний вид — страх и ужас.
Артур Шевченко
19 октября 2022, 12:08
0
Мне иногда кажется, что магазины делают скидки ради скидок, не ради привлечения клиентов, а именно ради самого факта скидки. Чтобы 3% считать существенной скидкой, ради которой можно докупить что-то ещё сумма должна быть больше 100К. Ну это ладно, а как для покупателя звучит эта акция?

С лирикой закончили, теперь по сути. Не думаю, что Discontrol сможет понять чего вам надо, поэтому, наверное, стоит смотреть в сторону написания своих плагинов для работы с корзиной.
Артур Шевченко
19 октября 2022, 12:00
0
Вообще работает, если where составлен правильно. Это должен быть валидный json, а у тебя просто строка. И судя по % ты хочешь использовать LIKE, что-то не вижу чтобы ты его где-то писал.
Петр
19 октября 2022, 11:43
0
как синхронизировать галерею минишопа, если использовать Babel?
как синхронизировать цвет, остаток реализованный через доп. msOptionsPrice2?
Сергей Карпович
19 октября 2022, 11:35
0
Ребята, подскажите как задать свои значения для поля combo-boolean в профиле?
Мне нужно что бы там был выбор из 3-х значений: нет, оплачено, волонтер.

Создал поле combo-boolean, а там только да/нет
vectorserver
19 октября 2022, 08:05
0
Этот метод используется для загрузки классов отображения ORD xPDO, которые определяют объекты вашего пакета.
boolean addPackage ([string $pkg = ''], [string $path = ''], [string $tablePrefix = ''])
$modx->addPackage('mypkg',MODX_CORE_PATH.'components/mypkg/model/','mypkg_');