Возможно ли написать Яндекс.Маркет на php + mysql

varan

Б̈́̈̽ͮͣ̈Л̩̲̮̻̤̹͓ДͦЖ̯̙̭̥̑͆А͇̠̱͓͇̾ͨД͙͈̰̳͈͛ͅ
Возможно ли написать Яндекс.Маркет на php + mysql

Возможно ли написать a la Яндекс.Маркет на php + mysql? Или нереально? К примеру, отбор абсолютно разношерстных товаров по любым параметрам

http://market.yandex.ru/guru.xml?CMD=-RR=0,0,0,0-VIS=160-CAT_ID=754893-EXC=1-PG=10&view=&sort=&hid=91020&filter=&grhow=

пути которые я вижу:
1) каждый тип поля в своей таблице. Короче, eav и всё такое. Кто-нибудь реально юзал на боевых проектах с большой посещаемостью? Возможно ли делать быстрые выборки с помощью этих кошмарных по виду запросов?
2) Каждую группу товаров в отдельную таблицу. Типа, таблица "материнские платы", таблица "телевизоры" и т.д. Всё круто, но таблиц дофига, и сложно выбрать, к примеру, все товары магазина, у которых в названии есть слово "пушкин". Придется довешивать какие-то костыли.

Может, еще есть какие-то идеи? Кто-нибудь делал на практике такое?
 

Фанат

oncle terrible
Команда форума
а где в маркете выбор всех товаров со словом пушкин
 

varan

Б̈́̈̽ͮͣ̈Л̩̲̮̻̤̹͓ДͦЖ̯̙̭̥̑͆А͇̠̱͓͇̾ͨД͙͈̰̳͈͛ͅ
http://market.yandex.ru/search.xml?text=%ef%f3%f8%ea%e8%ed&hid=90829&srnum=3838

видимо, надо создать еще одну таблицу с индексом по называнию товара, рейтингом, и еще какой-нибудь общей хренью.
 

Falc

Новичок
*****
http://market.yandex.ru/search.xml?text=%ef%f3%f8%ea%e8%ed&hid=90829&srnum=3793

-~{}~ 02.10.09 12:19:

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

varan

Б̈́̈̽ͮͣ̈Л̩̲̮̻̤̹͓ДͦЖ̯̙̭̥̑͆А͇̠̱͓͇̾ͨД͙͈̰̳͈͛ͅ
да, согласен.
 

varan

Б̈́̈̽ͮͣ̈Л̩̲̮̻̤̹͓ДͦЖ̯̙̭̥̑͆А͇̠̱͓͇̾ͨД͙͈̰̳͈͛ͅ
как писали то, собственно?
 

Фанат

oncle terrible
Команда форума
Лично я не вижу проблемы.
В яндексмаркете нет никакого отбора абсолютно разношерстных товаров по любым параметрам. Маркет не ищет флешки с зимним протектором и сушкой волос.
Есть ОТДЕЛЬНЫЕ товары, каждый со своими характеристиками.
Каждый товар добавляется в систему отдельно. Это отдельная мини-экспертная система. Не удивлюсь, если руками. Пусть на некоем "фрейморке", но уж точно не хмл файлом с настройками.
среднему программисту свойственно думать, что любую задачу можно решить общим порядком. И поэтому он за пол-дня напишет программу, которая решит за 5 минут задачу, которая руками решается за полчаса. Хуже, когда цифры вырастают на 2-3 порядка.
 

Alexandre

PHPПенсионер
думал прикрутить для поиска сфинкс.
еще надо по большому счету прикрутить автокомплиит.

поиск делается отдельно от основных таблиц БД:
вычисляются частотность поисковых слов
на наиболее запрашиваемые слова строятся поисковые хеши
дается отдача из хешей.

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

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

по модели запроса строим сам SQL и ищем

полнотекстный поиск - это самый последний вариант, при том из поискового запроса надо исключать слова категорий ( названия фирм названия категорий: Samsung камера ) чтоб не было 10 000 наименований, из которых только 10 соответствует критериям...

в общем задумавалось в этом направлении, но не все реализованно.
 

Krishna

Продался Java
среднему программисту свойственно думать, что любую задачу можно решить общим порядком. И поэтому он за пол-дня напишет программу, которая решит за 5 минут задачу, которая руками решается за полчаса. Хуже, когда цифры вырастают на 2-3 порядка.
Хорошо сказал :)
 

Sherman

Mephi
Насколько я помню из выступления разработчиков, в Я любой продукт - это практически всегда research. Например, в Я маркете, действует автоматическая система классификации товаров по категориям. То есть даже если вы ошиблись указав, что монитор в группе Принтеры, то классификатор все равно сможет занести его в группу Мониторы.

Так что задачка не такая простая как кажется :)

Кроме того, я думаю, что там есть и другие интересные и нетривиальные задачи. Тот же "гуру".
 

Alexandre

PHPПенсионер
в Я маркете, действует автоматическая система классификации товаров по категориям
в традебох тоже...
бэкэнд в десять раз сложнее чем фронты
То есть даже если вы ошиблись указав, что монитор в группе Принтеры
тоже есть некоторый анализатор неопознанных товаров

вообще алгоритмы объединения товаров по спекам довольно-таки своеобразные. Для тех кто в теме: суть проекта в сборе информации с многих сайтов, сортировке и объединении по наименованиям товаров. Но в одном опубликованнном прайс-листе название "Фотоаппарат Panasonic Lumix DMC-FZ18" в другом "Panasonic Lumix DMC-FZ18" а в третьем "Фотоаппарат Lumix DMC-FZ18" или просто "Lumix DMC-FZ18"
надо все это свести к одной спеки. А еще некоторые любят в название еще добавлять слова "зеркальный" "цифровой" и прочий шлак

А вот теперь добавился новый вид товара: "Lumix DMC-TZ3" в какую категорию его определить???
 

tf

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

Alexandre

PHPПенсионер
в категорию фотоаппараты
а как это определить автоматически?

-~{}~ 03.10.09 23:53:

снало идет фул текст поиск товара при добавлении, а потом уже юзаются соответсвия)
на 5 милл товаров? сколько он будет искать?
 

Adelf

Administrator
Команда форума
Alexandre
ну 1-2 сотые секунды может быть :) Если это сфинкс.
 

Alexandre

PHPПенсионер
Adelf я не успел проэкспериментировать со сфинксом, перешел в др проект.
там еще много возни грамотной с подготовкой данных.
не хотелось бы чтоб по одному запросу выдавалось много шлаку...
например при запросе "Мониторы Samsung" - чтоб не было видеокамер, стиральных машин и фотоаппаратов
на при запросе "Мониторы 17" Samsung" не выдавались мониторы 15"
 

Adelf

Administrator
Команда форума
Alexandre угу. Интеллектуальный поиск - это та еще задача :)
Но насколько я понял, там говорилось о поиске при добавлении, хотя ладно.
Сфинкс хорошо тем, что умеет ранжировать правильно и быстро. Можно, почти не прилагая усилий, добиться того, чтобы при "Мониторы 17" Samsung" именно 17 дюймовые мониторы самсунга были первыми в результатах(а может и вообще единственными). А это уже подойдет для 95% задач :)
 

Активист

Активист
Команда форума
1. Всегда была интересна структура БД в таких проектах, ибо там "много параметров, очень много". Как они обрабатываются - и хранятся - непонятно, неужели для каждой группы/подгруппы товаров свои таблицы.

2. Откуда Я.Маркет знает о новых товарах, и готов дать информацию по ним (тех. характеристики). Допустим, выпустил тот же самсунг новую стеральную машины с системой "сама развешиваю белье, модификация "Умная Хозяйка - 4", магазины активно начали продавать товар, как яндекс определяет, что это
2.1. Новый товар, которого нет в бд.
2.2. Изменились параметры группы товаров, добавилась характеристика "сама вывешиваю белье".
2.3. Нет описания товара, откуда взять?
2.4. Как выполняется изменение всей БД (таблицы), поисковой системы?

Магазины выдают массу товаров, огромную, с разными названиями тех характеристики и т.п. - очень интересно, по какому принципу идет анализ и объединение.

3. Кто-нибудь видел тех. описания отдаваемого XML'я?

Я бы например, для своего города слелал бы такой проект, да вот только - с чего начать)))?
 

Alexandre

PHPПенсионер
1. Всегда была интересна структура БД в таких проектах, ибо там "много параметров, очень много". Как они обрабатываются - и хранятся - непонятно, неужели для каждой группы/подгруппы товаров свои таблицы.
нет

упрощенная стр следующая:
таблица каталог (видимый иерархический)
таблица классы товаров
таблица бренды
таблица спеки (товары)
таблица предложения (товар от конкр фирмы)

таблица модели (это часть наименования, например товар Canon S-70 - модель S-70 )

что касается свойств товаров:
есть еще таблица: свойства
есть табл единицы изм
таблица привязки св-в к спекам

в общем в проекте порядка 70 табл.

-~{}~ 07.10.09 10:18:

2. Откуда Я.Маркет знает о новых товарах, и готов дать информацию по ним (тех. характеристики). Допустим, выпустил тот же самсунг новую стеральную машины с системой "сама развешиваю белье, модификация "Умная Хозяйка - 4", магазины активно начали продавать товар, как яндекс определяет, что это
каждый интернет магазин вывешивает прайс-лист в формате ЯМ(ХМЛ)
интелектуальная определялка на новые товары+ модерация

-~{}~ 07.10.09 10:19:

2.1. Новый товар, которого нет в бд.
сравнивалка с существующими спеками. если нет совпадений по кл словам ( модели - классы-бренды), то на модерацию. В Какой категории товар - указано в прайс-листе.

-~{}~ 07.10.09 10:26:

2.2. Изменились параметры группы товаров, добавилась характеристика "сама вывешиваю белье".
все тоже, самая проблема - это вычислить характеристики нового товара, но каждый новый товар проходит модерацию, то этому перечень характкеристик в нем задается
2.3. Нет описания товара, откуда взять?
опять модерация (выбирается лучшее из представленных пяти),
магазины заинтересованы в продвижении товара, по этому в ЯМ-формате забито поле дескрипшин
2.4. Как выполняется изменение всей БД (таблицы), поисковой системы?
не понял мысли.
3. Кто-нибудь видел тех. описания отдаваемого XML'я?
вывешивается на ЯМ, посмотри в требованиях к магазинам на tradebpox.ru
Я бы например, для своего города слелал бы такой проект, да вот только - с чего начать
с поиска толкового менеджера, который привлечет 100 магазинов.

на чем будешь зарабатывать?
инвестиционная привлекательность не высока, для самоокупаемости требуется минимум 500 магазинов готовых платить за клики.
для привлечения магазинов - это посещаемость не менне 25 - 45 К в сутки.

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

-~{}~ 07.10.09 10:32:

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