Требуется в Битрикс Управление сайтом (Малый бизнес, Бизнес)
В архиве
Санкт-Петербург(Россия )
ayacowex
27.03.1966(58 лет)
20 февраля 2017 в 13:55:06
(7 лет 39 недель 4 дня 17 часов назад)
14.07.2013 21:56:13
Текст задания
Требуется в Битрикс Управление сайтом (Малый бизнес, Бизнес) алгоритм поиска по каталогу товаров:
1. Каталог сгруппирован по разделам, в которые входят товары. Товары имеют предложения, все данные содержатся в таблицах b_iblock_element и b_iblock_element_property. Товары в одном инфоблоке, предложения в другом.
Товары и предложения можно связать по полю XML_ID. В предложении начало этого поля совпадает со значением поля товара.
Например, у товара XML_ID = 123
У предложения XML_ID может быть равен
123
123#
123#456
2. Реквизиты, по которым идет поиск:
b_iblock_element:
SEARCHABLE_CONTENT
b_iblock_element_property:
VALUE
3. Возвращаемые значения выборки: ID раздела,ID товара, ID предложения. Если найденная строка относится к товару, то
4. Сортировка выгрузки: вначале все варианты, в которых слова поиска совпадают со словами наименований и описаний; потом те записи, в которых слова поиска - части слов наименований и описаний, потом - по вхождению корней.
Пример 1:
Поисковое слово: клей
Результат:
Клей Абсолют
Клей Момент
Клей резиновый
Абсолютный клей
Моментальный клей
Резиновый клей
Абсолютная клейкая лента (клей - часть слова)
Клеющий карандаш (поиск по корню кле, т.к. такой вариант достаточно сложный, то можно его не брать в расчет)
Пример 2:
Поисковое слово: 123
Результат:
123
раз 123
1234
12345
123четыре
0123
71239
5. Объём выгрузки должен ограничиваться параметром, который можно будет легко поменять.
Например, выводить не больше 200 строк результатов или 500 строк
6. Оценка работы будет производится на тестовом сайте разработчика. Должны быть заведено достаточное количество примеров, чтобы продемонстрировать правильную работу алгоритма поиска.
7. Решение не должно затрагивать ядро Битрикс. Т.е. должно работать после обновлений платформы, не меняющих структуру b_iblock_element, b_iblock_element_property и используемые функции API.