Фрилансеры предложат решение вашей задачи уже через несколько минут!

Публикация заказа на фриланс бирже не займет много времени.

3 дня назад
Максим
31 год, Россия
12 лет в сервисе
Был онлайн 2 дня назад
33 отзыва(-1)
100% фрилансеров рекомендуют 34% заказов с выбором исполнителя
3 дня назад

Дано:
- Массив уникальных хешей. Количество 500-600к примерно.
- У каждого хеша есть несколько значений, от 1 до 10 штук на каждый.

Необходимо разбить хеши по группам, где хеш будет принадлежать группе, если 4 и более его значение будут общими со значениями группы.
Значения группы = все значения хешей из группы.

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

Было несколько попыток написать скрипт на С#, питон и прочее. Все эти варианты сливались из-за того, что скрипт просто очень долго работает и не может закончить выполнение. В целом есть понимание, что это задача для Баз данных. Может быть google bigquery в помощь придет с его мощностями. 

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

У каждого товара есть свой список характеристик. От 1 до 10 штук. В среднем 8-10 характеристик. Там тоже могут быть и переносы и что угодно, поэтому тоже переведено все в хеши для удобства сравнивания.

Мне нужно сгруппировать эти товары. Если 1 товар имеет 4 и более одинаковых характеристики с другим, то эти товары можно считать в одной группе. Поэтому когда в группе уже 100 товаров, и нужно проверить следующий на очереди товар, то он должен сверить свои характеристики уже со 100 товарами в этой группе и найти совпадение или не найти. Ну и получается, что когда анализ уже на середине базы, уже куча групп сформирована и каждый следующий товар приходится сверять с множеством характеристик. Поэтому нужно что то эффективное.

  • Рекламное место свободно
  • Рекламное место свободно
Заявки фрилансеров
6 заявок от фрилансеров

Посмотреть заявки можно будет после закрытия заказа.

Другие заказы в категории «Базы данных»