Successfully reported this slideshow.

Персонализация контента с помощью Yii, Sphinx и Couchbase

1

Share

Upcoming SlideShare
Sphinx
Sphinx
Loading in …3
×
1 of 39
1 of 39

Персонализация контента с помощью Yii, Sphinx и Couchbase

1

Share

Download to read offline

Коротко о компании Онтико и проектах на Yii, которые были реализованы. Проблема персонализации контента. Хранение большого объёма данных в Couchbase. Поиск связанного контента при помощи PHP(Yii) и Sphinx.

Коротко о компании Онтико и проектах на Yii, которые были реализованы. Проблема персонализации контента. Хранение большого объёма данных в Couchbase. Поиск связанного контента при помощи PHP(Yii) и Sphinx.

More Related Content

Related Books

Free with a 14 day trial from Scribd

See all

Персонализация контента с помощью Yii, Sphinx и Couchbase

  1. 1. Персонализация контента с помощью Yii, Sphinx и Couchbase Артём Демченков (Онтико)
  2. 2. ООО “Онтико”
  3. 3. Что такое “Персонализация контента?”
  4. 4. Youtube.com
  5. 5. Youtube.com
  6. 6. Виды рекомендованного контента - Страницы, связанные с уже просмотренными страницами. - Страницы, связанные с контентом текущей страницы. - Страницы, связанные с вашими интересами. - Страницы, специально подобранные вам редактором сайта.
  7. 7. Связь через теги на примере сайта медицинской тематики
  8. 8. Теги на странице сайта
  9. 9. Исходные данные - PHP (Yii Framework)
  10. 10. Исходные данные - PHP (Yii Framework) - 50 000 статей, 100 000 новостей
  11. 11. Исходные данные - PHP (Yii Framework) - 50 000 статей, 100 000 новостей - 50 000 тегов в MySQL
  12. 12. Исходные данные - PHP (Yii Framework) - 50 000 статей, 100 000 новостей - 50 000 тегов в MySQL - У каждого тега есть родитель, потомки и связанные теги
  13. 13. Дерево тегов (Каталог медицинских терминов)
  14. 14. Архитектура системы Couchbase MySQL Запрос виджета NGINX PHP SPHINX Memcache
  15. 15. Упрощенная структура базы данных med_news med_news_tags med_tags id id id title news_id title text tag_id is_publish is_publish
  16. 16. Sphinx Для индексации используем запрос: sql_query = SELECT n.id as id, GROUP_CONCAT(CONCAT('searchtag',t.tag_id)) as news_index FROM med_news n LEFT JOIN med_news_tags t ON t.news_id=n.id WHERE n.is_publish=1 GROUP BY n.id При поиске передаем Sphinx'у строку вида: “searchtag1 searchtag2 searchtag3 searchtag4...”
  17. 17. Алгоритм подбора поискового запроса 1. Теги страницы
  18. 18. Алгоритм подбора поискового запроса 1. Теги страницы 2. Дочерние теги каждого из тегов страницы
  19. 19. Алгоритм подбора поискового запроса 1. Теги страницы 2. Дочерние теги каждого из тегов страницы 3. Теги, связанных с каждым из тегов страницы
  20. 20. Алгоритм подбора поискового запроса 1. Теги страницы 2. Дочерние теги каждого из тегов страницы 3. Теги, связанных с каждым из тегов страницы 4. Родитель каждого из тегов страницы
  21. 21. Дерево тегов (Каталог медицинских терминов)
  22. 22. Алгоритм подбора поискового запроса 1. Теги страницы 2. Дочерние теги каждого из тегов страницы 3. Теги, связанных с каждым из тегов страницы 4. Родитель каждого из тегов страницы А если материалов не хватает, то все сначала :-)
  23. 23. MySQL?
  24. 24. Выходим из мейнстрима
  25. 25. 1. Хранит часто используемые данные в оперативной памяти, а редкие на диске. 2. Позволяет удобно реплицировать данные на несколько cерверов. http://www.couchbase.com/
  26. 26. Каждый тег в Couchbase 25 = { “n” : 2, “a” : 1, “p” : 156, “d” : “6, 7, 8”, “r” : “35, 56, 33” }
  27. 27. Подбор строки 1. Теги страницы 2. Дочерние теги каждого из тегов страницы 3. Теги, связанных с каждым из тегов страницы 4. Родитель каждого из тегов страницы
  28. 28. Связь Couchbase и Yii (1 способ) Библиотека,основанная на протоколе Memcached. Для установки можно положить файлы библиотеки в папку /protected/vendors и подключить в /protected/config/main.php https://github.com/couchbaselabs/php-couchbase
  29. 29. Связь Couchbase и Yii (2 способ) PHP Client Library Библиотека написана на С и собирается из исходников. http://www.couchbase.com/develop/php/current
  30. 30. Связь Sphinx и Yii (1 способ) Расширение Dgsphinxsearch Способ установки подробно описан на странице расширения: http://www.yiiframework.com/extension/dgsphinxsearch
  31. 31. Связь Sphinx и Yii (2 способ) Sphinx API Для установки можно положить файл API в папку /protected/vendors и подключить в /protected/config/main.php http://code.google.com/p/sphinxsearch/source/browse/trunk/ api/sphinxapi.php
  32. 32. И наконец... 1. Поисковый запрос в Sphinx 2. Результат в Memcache 3. И в браузер пользователю
  33. 33. Спасибо за внимание Артём Демченков @ : artem.demchenkov@ontico.ru, ardemchenkov@gmail.com : ardemchenkov

×