Задать вопрос
New_Horizons
@New_Horizons
Бред:

Как сопоставить две базы товаров?

Есть две базы товаров. Допустим, у каждого товара в обеих базах есть id и название.
Объём баз по ~20000 товаров.

Примеры товаров в первой базе:
21502 "Катушка Shimano CATANA 4000 RC"
23517 "Видеорегистратор с поворотными камерами Playme Nio"

Эти же товары во второй базе:
19446 "Катушка ALIVIO 4000 RC"
282999 "Видеорегистратор с 2-мя камерами PLAYME NIO"

Задача связать товары между базами по id.
Понятно, что это ручная работа, но может есть способ хотя бы упростить эту работу? Подозреваю, что это связано с нечётким поиском? Есть какие-то библиотеки для подобного?
  • Вопрос задан
  • 105 просмотров
Подписаться 2 Средний Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 1
New_Horizons
@New_Horizons Автор вопроса
Бред:
В общем использовал sphinx search, проиндексировал бОльшую базу, и искал в ней по названиям из другой базы. Пробелы заменял на символ "|", и ручное модерирование совпаденией.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@MikUrrey
Библиотек не знаю, но, если правильно понял задачу, опирался бы в решении на следующие подсказки:
1) Сделать инструмент консольным
2) Пройти по каждому товару в первой базе и вывести возможные совпадения по второй
3) Для получения совпадений разбить название на слова, короткие отбросить, по остальным составить условие типа такого: LIKE % word1 % AND LIKE % word2 % AND LIKE % word3 % и т. д.
4) Опираясь на количество совпадений и порядок следования слов вывести процент схожести по каждой позиции
5) Предоставить input, где можно будет ввести ID совпадения вручную или выбрать позицию с наибольшим совпадением по мнению скрипта, просто нажав Enter.

Вот, в принципе, и всё. Только, исходя из своего опыта, скажу что 20000 это реально много для ручной обработки, даже с таким скриптом))
Ответ написан
Комментировать
Adamos
@Adamos
Колхоз на коленке:
- таблица: id - слово (уникальный индекс)
- таблица: база товара (1 или 2), артикул (индекс), id слова в таблице слов.
Для каждого товара из каждой базы разбиваете название на слова, для каждого из них делаете запись в обеих таблицах. Получится несколько миллионов записей, это не так страшно и не так долго, если не косячить с запросами.
Потом по артикулам первой базы запрашиваете артикулы второй, у которых во второй таблице больше всего записей с id прописанных для первого артикула слов. Из десятка лидеров выбираете вручную сопоставление.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽