[Анонс] Создание магазина на MODX и ElasticSearch

Я человек с не очень богатым опытом создания интернет магазинов: что-то около 10-15 штук. Чаще всего приходилось пользоваться уже готовыми решениями, кои перечислять здесь не буду, дабы не создавать рекламы.

Но вот внезапно возникла одна задача: нужно реализовать магазин с базой в 2-3 млн товаров, в перспективе, может, даже 5. После долгих размышлений было принято решение воспользоваться уже готовым решением — одной платной CMS. Сумма была уплачена, CMS развернули, начали лить туда товары, но тут возникла дилемма: эта CMS работает только с грубой структурой товаров и с ограниченным набором параметров во время загрузки.

Стало очевидно, что нам необходимо переписывать загрузчик товаров в базу. Уже была дана отмашка, чтобы я начинал писать, но возникла идея протестировать эту CMS на стрессоустойчивость — посмотреть, как она будет работать на базе с 100 тысячами товаров. CMS себя проявила с худшей стороны, и стало понятно, что пришло время отказываться от нее и что необходимо вообще всё писать своими силами. Отсюда один из главных выводов по разработке подобных магазинов: НИКОГДА НЕ ПОЛЬЗУЙТЕСЬ ГОТОВЫМИ РЕШЕНИЯМИ!

Вопрос о том, что лучше использовать для разработки подобных проектов, я поднял в уютном чате сообщества MODX в Беларуси. В процессе обсуждения мы пришли к мнению, что необходимо использовать NoSQL-базу для хранения товаров и их параметров. Послом MODX в Беларуси Иваном Климчуком Alroniks было предложено решение, используемое во многих проектах, а именно Redis.

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

Краткое описание последующего цикла статей

Я опишу этот цикл с точки зрения использования его для создания Интернет-магазина.

  1. ElasticSearch — формирование базы товаров и общая информация по ElasticSearch (установка, настройка).
    1. Общая архитектура.
    2. Параметры и типы параметров.
    3. Прочее.
  2. Тонкости в формировании и парсинге файлов XML/CSV.
    1. Пример структуры файлов на CSV и ее разбор для записи в ElasticSearch.
    2. Пример структуры файла XML и его разбор для записи в ElasticSearch.
    3. Мои личные наработки для разбора больших файлов.
  3. ElasticSearch — выборка необходимых параметров товара.
    1. Выбираем все параметры для формирования фильтров.
    2. Выбираем необходимые параметры.
    3. Сортировка товаров и прочие обобщённые операции.
  4. Формирование категорий товаров на основе MODX и Wayfinder. Тонкости работы с многоуровневым каталогом.
    1. Пример моего опыта использования Ресурсов для формирования каталога.
    2. Особенности многоуровневого древа документов.
    3. Решение проблем многоуровневого древа.
  5. ElasticSearch — формирование поиска по всей базе.
  6. Хранение заказов на базе ElasticSearch, обновление/удаление. Подведение общего итога.
  7. Возможная статья: Особенность создания гибкого магазина с неограниченным количеством параметров.

P.S.: Время написания последующих статей будет варьироваться от 7 до 10 дней, т.к. именно в данный момент происходит сдача в эксплуатацию этого сайта.

Автор данной заметки и последующих статей: Александр Пашкевич.


Комментарии (0)

    Вы должны авторизоваться, чтобы оставлять комментарии.

    © 2011 — 2014 MODX Беларусь
    По всем вопросам обращаться в компанию Alroniks Experts