Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Евгений Ильин. Drupal + Solr: Яндекс.Маркет своими руками

1,271 views

Published on

DrupalCafe#9@Novosibirsk https://vk.com/drupalcafe9

Drupal + Solr или как сделать Яндекс маркет своими руками
Требования к интернет каталогам товаров и инструменты Drupal для создания современных каталогов.
Как сделать каталог, который будет продавать

-----
Сайт сибирского сообщества друпаллеров ДрупалСиб drupalsib.ru
Группа сибирского сообщества друпаллеров Вконтакте vk.com/drupalsib
Партнер Группа компаний И20 i20.biz

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Евгений Ильин. Drupal + Solr: Яндекс.Маркет своими руками

  1. 1. Drupal + Solr: Яндекс Маркет своими руками
  2. 2. Немного обо мне ● 5 лет разработки на Drupal ● Я реализовал поиск на более чем 15 Drupal проектах ● Я написал цикл статей на тему интеграции Solr и Drupal ● Я разрабатываю собственные модули для поиска и делаю патчи для существующих модулей
  3. 3. Почему я выбрал эту тему Функционально и универсально
  4. 4. Что было сделано ● Полнотекстовый поиск на русском языке с поддержкой стемминга ● Мощный каталог с множеством опций ● ЧПУ для страниц поиска ● Новые виджеты для фасетных фильтров ● AJAX’овые фасеты
  5. 5. Модули которые я использовал Must have: ● Search API ● Search API Solr Search ● Facet API
  6. 6. Модули которые я использовал Useful: ● Search API Views ● Facet API Pretty Paths ● Search API Autocomplete ● AJAX Facets ● Search API Sorts
  7. 7. С какими сложностями я столкнулся ● Качество поисковой выдачи ● Постоянно меняющийся набор атрибутов у товаров ● Большие затраты ресурсов на индексацию ● Кастомизация фасетных фильтров ● Работа с сортировками
  8. 8. Качество поисковой выдачи search results + Relevancy Completeness of the Weight of fields Boost Elevation Stemming Additional fields with tags
  9. 9. Качество поисковой выдачи Что такое стемминг и для чего он нужен? Stemmer
  10. 10. Качество поисковой выдачи Как настроить стемминг для Apache Solr: ● Включить стеммер в schema.xml ● Сконвертировать файлы словаря в utf-8 и положить их в папку с конфигами ● Переиндексировать контент
  11. 11. Качество поисковой выдачи Как устроены словари для стемминга ● Словарь состоит из двух файлов ● Файл .aff содержит список правил словообразования ● Файл .dic содержит список слов, с указанием правил
  12. 12. Качество поисковой выдачи Добавим вомбата ru_RU.aff ru_RU.dic SFX K 0 а [^ейоь] SFX K 0 у [^ейоь] SFX K 0 ом [^ежйоцчшщь] SFX K 0 е [^ейоь] SFX K 0 ы [^гежйкохчшщь] SFX K 0 и [гжкхчшщ] SFX K 0 ей [жчшщ] SFX K 0 ов [^ежйоцчшщь] SFX K 0 ам [^ейоь] SFX K 0 ами [^ейоь] SFX K 0 ах [^ейоь] яшмовый/A ящер/K ящеренок/F ящерица/I ящеричный/A ящерка/I ящерный/A ящик/K ящичек/O ящичный/A ящур/J ящурный/A вомбат/K
  13. 13. Атрибуты индексируемых сущностей Как обычно бывает Сущность Поля Поля в индексе Фасеты Profit!
  14. 14. Атрибуты индексируемых сущностей Как было в тот раз Все та же сущность Набор полей постоянно меняется Кто будет добавлять поля в индекс?! Каждый раз настраивать фасеты?! Profit
  15. 15. Атрибуты индексируемых сущностей Что мы сделали ● Модуль relations для связи атрибутов с товарами ● Динамическая генерация полей для поиска ● Динамическая настройка и отображение фасетных фильтров
  16. 16. ЧПУ для страниц поиска Что такое ЧПУ и для чего они нужны www.example.com/?q=node/1 www.example.com/node/1 www.example.com/articles/first-article
  17. 17. ЧПУ для страниц поиска Url результатов поиска с фасетными фильтрами www.example.com?f[0]=field_name:value www.example.com?f[0]=field_brand:bosch
  18. 18. ЧПУ для страниц поиска Модуль Facet API Pretty Paths www.example.com/field_name/value www.example.com/brand/bosch
  19. 19. Фасетные фильтры Yandex Market Drupal Market
  20. 20. Фасетные фильтры AJAX’овые фасеты - как они работают Фильтрация AJAX запрос на сервер Поиск по новым параметрам Обновление фильтров на странице Обновление результатов поиска
  21. 21. Фасетные фильтры Динамически настраиваемая структура каталога
  22. 22. Фасетные фильтры Несколько необычных задач связанных с фасетами ● Программная отрисовка фасетов ● Включение фасета по умолчанию ● Отрисовка одного и того же фасета дважды на странице
  23. 23. Сортировка результатов поиска Простые сортировки
  24. 24. Сортировка результатов поиска Сортировки и boost query В наличии Под заказ Отсутствует Сортировка по релевантности x1000 x100
  25. 25. Сортировка результатов поиска Сортировки и Elevation Usual results Elevated
  26. 26. В заключение Используйте готовые решения и компоненты
  27. 27. Drupal + Solr: Яндекс Маркет своими руками Задавайте вопросы Евгений Ильин ilyin.e@i20.biz SkypeID: ilyin.e

×