208 похожих чатов

Здравствуйте, подскажите пожалуйста. У меня есть инфоблок с товарами, в нем

есть 2 нужных мне свойства: Коллекция и Второе свойство

На основе этого мне необходимо собрать массив вида Название коллекции => [список значений второго свойства, которое встречается с этой коллекцией]

Дело в том что товаров 190 тысяч. Я боюсь что если запущу такой скрипт, то сервер упадет. Можно ли это как то делать пошагово, если да, то как. Или может будут какие то ещё советы?

Спасибо

23 ответов

26 просмотров

Массив собрать где и для чего?

Alice-NotDB Автор вопроса
Itachi Vergil
Массив собрать где и для чего?

Для того чтобы на основе этого массива перезаписать данные в соседнем инфоблоке с самими коллекциями, вписав в множественное свойство каждой коллекции возможные варианты значений этого же свойства в каталоге товаров для дальнейшей фильтрации

Alice NotDB
Для того чтобы на основе этого массива перезаписат...

Изначально вижу какие-то странные манипуляции непонятно зачем. если запускать скрипт с постраничной обработкой сайт не упадёт. но я бы послушал ещё какую задачу хочется решить такими манипулциями. во-первых я не очень понял какие значения свойств куда требуется перезаписать, и зачем всё это. Пока звучит как попытка переизобрести хайлоад блок и свойство типа "справочник"

Alice-NotDB Автор вопроса
Itachi Vergil
Изначально вижу какие-то странные манипуляции непо...

Максимально просто: Есть каталог товаров. У него есть строковые свойства. В одном свойстве хранится название коллекции. Другое свойство, ну, к примеру "Материал" содержит соответственно название материала. Мне нужно знать какие виды материалов содержит каждая из коллекций в каталоге товаров, для того чтобы дать такие же значения такому же свойству в инфоблоке с коллекциями. Для фильтрации. Структуру имеющихся данных мне менять нельзя, только лепить сверху.

Alice NotDB
Максимально просто: Есть каталог товаров. У него...

а вы подумали что будет когда в товары добавится новая коллекция с новыми материалами? что будет с тем функционалом который вы сейчас обсуждаете?

Alice-NotDB Автор вопроса
Itachi Vergil
а вы подумали что будет когда в товары добавится н...

да, поэтому это будет либо на крон событии либо на событии выгрузки каталога

Alice NotDB
да, поэтому это будет либо на крон событии либо на...

звучит как костыль. ну если хочется - делайте. снизить нагрузку можно постраничным вызовом элементов. но не уверен что это сильно поможет решить задачу

Alice-NotDB Автор вопроса
Itachi Vergil
звучит как костыль. ну если хочется - делайте. сни...

1 свойство я привела в пример, но если этих свойств будет 40 например, то создавать хайлоады и доп. инфоблоки может стать проблемой

Alice NotDB
1 свойство я привела в пример, но если этих свойст...

по описанию задачи (фильтр в разделе коллекций) можно ещё просто фильтр самостоятельно оформить чтобы не было дополнительных свойств. чтобы сам фильтр собирал эти значения и хранил где-то в кеше или отдельной бд, или json-файлике

Alice-NotDB Автор вопроса
Itachi Vergil
звучит как костыль. ну если хочется - делайте. сни...

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

Alice NotDB
знаю что звучит как костыль, это он и есть, я прос...

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

Alice-NotDB Автор вопроса
Itachi Vergil
ну есть компонент битрикса - умный фильтр. у него ...

инфоблоки никак не связаны друг с другом, значения просто строки, тогда надо и выгрузку корректировать для того чтобы хоть какая то привязка была

Alice NotDB
инфоблоки никак не связаны друг с другом, значения...

не понимаю при чём тут связь инфоблоков и выгрузка. вот возьмём для примера ламоду. вот слева фильтр. это выводится на страницу компонентом умный фильтр. его шаблон можно исправить и выводить по своему алгоритму параметры этого фильтра

Alice-NotDB Автор вопроса
Itachi Vergil
screenshot не понимаю при чём тут связь инфоблоков и выгрузка...

ну, каким то образом работать со сгенерированными фасетными индексами вы предлагаете?

Alice NotDB
ну, каким то образом работать со сгенерированными ...

у инфоблока "коллекции" есть сейчас свойство материал?

Alice NotDB
Максимально просто: Есть каталог товаров. У него...

Делаете пошаговку по инфоблоку коллекций. Ищите товары по колекции. Затем по их id подымаете нужно свойство товаров. Для поддержания актуальности есть события изменения значений свойств, вешайтесь на них.

Alice-NotDB Автор вопроса
Eugene Zhukov
Делаете пошаговку по инфоблоку коллекций. Ищите то...

звучит довольно гениально, спасибо большое ❤️❤️❤️

Eugene Zhukov
Делаете пошаговку по инфоблоку коллекций. Ищите то...

интересно что будет если сделать группировку по элементам коллекция, материал :) вроде хватает тяжело для базы понятно... но может там делов то пару секунд запросу

Eugene Zhukov
(голосом Шелдона) Сарказм?

в общем идея получить хеш таблицу в кеш (коллекция - материалы) и после просто сортировкой по ид пройтись по товарам пошаговым агентом например

Alice NotDB
нет

попробуй группировку, скорее всего 3-10 секунд операция обновления займет... если коллекций не десятки тысяч

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта