SlideShare una empresa de Scribd logo
1 de 39
Персонализация контента с
помощью Yii, Sphinx и Couchbase


      Артём Демченков (Онтико)
ООО “Онтико”
Что такое “Персонализация
        контента?”
Youtube.com
Youtube.com
Виды рекомендованного контента

- Страницы, связанные с уже просмотренными
страницами.

- Страницы, связанные с контентом текущей
страницы.

- Страницы, связанные с вашими интересами.

- Страницы, специально подобранные вам
редактором сайта.
Связь через теги
на примере сайта медицинской
          тематики
Теги на странице сайта
Исходные данные

- PHP (Yii Framework)
Исходные данные

- PHP (Yii Framework)
- 50 000 статей, 100 000 новостей
Исходные данные

- PHP (Yii Framework)
- 50 000 статей, 100 000 новостей
- 50 000 тегов в MySQL
Исходные данные

- PHP (Yii Framework)
- 50 000 статей, 100 000 новостей
- 50 000 тегов в MySQL
- У каждого тега есть родитель, потомки и
связанные теги
Дерево тегов
(Каталог медицинских терминов)
Архитектура системы

                  Couchbase          MySQL




Запрос
виджета
          NGINX               PHP            SPHINX




                          Memcache
Упрощенная структура базы данных


med_news     med_news_tags   med_tags
id           id              id
title        news_id         title
text         tag_id          is_publish
is_publish
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...”
Алгоритм подбора поискового
            запроса
1. Теги страницы
Алгоритм подбора поискового
            запроса
1. Теги страницы

2. Дочерние теги каждого из тегов страницы
Алгоритм подбора поискового
            запроса
1. Теги страницы

2. Дочерние теги каждого из тегов страницы

3. Теги, связанных с каждым из тегов страницы
Алгоритм подбора поискового
            запроса
1. Теги страницы

2. Дочерние теги каждого из тегов страницы

3. Теги, связанных с каждым из тегов страницы

4. Родитель каждого из тегов страницы
Дерево тегов
(Каталог медицинских терминов)
Алгоритм подбора поискового
            запроса
1. Теги страницы

2. Дочерние теги каждого из тегов страницы

3. Теги, связанных с каждым из тегов страницы

4. Родитель каждого из тегов страницы



А если материалов не хватает, то все сначала :-)
MySQL?
Выходим из мейнстрима
1. Хранит часто используемые данные в оперативной памяти,
а редкие на диске.

2. Позволяет удобно реплицировать данные на несколько
cерверов.




http://www.couchbase.com/
Каждый тег в Couchbase

25 = {
  “n” : 2,
  “a” : 1,
  “p” : 156,
  “d” : “6, 7, 8”,
  “r” : “35, 56, 33”
}
Подбор строки
1. Теги страницы

2. Дочерние теги каждого из тегов страницы

3. Теги, связанных с каждым из тегов страницы

4. Родитель каждого из тегов страницы
Связь Couchbase и Yii (1 способ)
Библиотека,основанная на протоколе Memcached.

Для установки можно положить файлы библиотеки
в папку /protected/vendors
и подключить в /protected/config/main.php

https://github.com/couchbaselabs/php-couchbase
Связь Couchbase и Yii (2 способ)
PHP Client Library

Библиотека написана на С и собирается из исходников.

http://www.couchbase.com/develop/php/current
Связь Sphinx и Yii (1 способ)
Расширение Dgsphinxsearch

Способ установки подробно описан на странице расширения:

http://www.yiiframework.com/extension/dgsphinxsearch
Связь Sphinx и Yii (2 способ)
Sphinx API

Для установки можно положить файл API
в папку /protected/vendors
и подключить в /protected/config/main.php

http://code.google.com/p/sphinxsearch/source/browse/trunk/
api/sphinxapi.php
И наконец...
1. Поисковый запрос в Sphinx

2. Результат в Memcache

3. И в браузер пользователю
Спасибо за внимание

Артём Демченков


@ : artem.demchenkov@ontico.ru, ardemchenkov@gmail.com
    : ardemchenkov

Más contenido relacionado

Destacado

Ete 101 accident at workplace and prevention
Ete 101 accident at workplace and preventionEte 101 accident at workplace and prevention
Ete 101 accident at workplace and prevention
Che'gu Jijan
 
Langkah keselamatan mengangkat barang
Langkah keselamatan mengangkat barangLangkah keselamatan mengangkat barang
Langkah keselamatan mengangkat barang
Salwa Zakaria
 
Makalah Faktor Biologi Penyakit Akibat Kerja
Makalah Faktor Biologi Penyakit Akibat KerjaMakalah Faktor Biologi Penyakit Akibat Kerja
Makalah Faktor Biologi Penyakit Akibat Kerja
Sariana Csg
 

Destacado (12)

Ete 101 accident at workplace and prevention
Ete 101 accident at workplace and preventionEte 101 accident at workplace and prevention
Ete 101 accident at workplace and prevention
 
Hirarc perhotelan
Hirarc perhotelanHirarc perhotelan
Hirarc perhotelan
 
ERGONOMIK - KESELAMATAN DAN KESIHATAN PEKERJAAN
ERGONOMIK - KESELAMATAN DAN KESIHATAN PEKERJAANERGONOMIK - KESELAMATAN DAN KESIHATAN PEKERJAAN
ERGONOMIK - KESELAMATAN DAN KESIHATAN PEKERJAAN
 
Hirarc slide
Hirarc slideHirarc slide
Hirarc slide
 
Ergonomik di tempat kerja
Ergonomik di tempat kerjaErgonomik di tempat kerja
Ergonomik di tempat kerja
 
Langkah keselamatan mengangkat barang
Langkah keselamatan mengangkat barangLangkah keselamatan mengangkat barang
Langkah keselamatan mengangkat barang
 
AKTA KESELAMATAN DAN KESIHATAN PEKERJAAN 1994 - AKTA 514
AKTA KESELAMATAN DAN KESIHATAN PEKERJAAN 1994 - AKTA 514AKTA KESELAMATAN DAN KESIHATAN PEKERJAAN 1994 - AKTA 514
AKTA KESELAMATAN DAN KESIHATAN PEKERJAAN 1994 - AKTA 514
 
Hirarc
HirarcHirarc
Hirarc
 
Hazard Identification, Risk Assessment and Risk Control (HIRARC) Malay version
Hazard Identification, Risk Assessment and Risk Control (HIRARC) Malay versionHazard Identification, Risk Assessment and Risk Control (HIRARC) Malay version
Hazard Identification, Risk Assessment and Risk Control (HIRARC) Malay version
 
Biological hazard dan chemical hazard(SRI_HANDAYANI)
Biological hazard dan chemical hazard(SRI_HANDAYANI)Biological hazard dan chemical hazard(SRI_HANDAYANI)
Biological hazard dan chemical hazard(SRI_HANDAYANI)
 
Ergonomi Dalam Bekerja
Ergonomi Dalam BekerjaErgonomi Dalam Bekerja
Ergonomi Dalam Bekerja
 
Makalah Faktor Biologi Penyakit Akibat Kerja
Makalah Faktor Biologi Penyakit Akibat KerjaMakalah Faktor Biologi Penyakit Akibat Kerja
Makalah Faktor Biologi Penyakit Akibat Kerja
 

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

Cфинкс и поиск терабайта
Cфинкс и поиск терабайтаCфинкс и поиск терабайта
Cфинкс и поиск терабайта
Media Gorod
 
Инфраструктура социального проекта
Инфраструктура социального проектаИнфраструктура социального проекта
Инфраструктура социального проекта
Media Gorod
 
MongoDB первые впечатления
MongoDB первые впечатленияMongoDB первые впечатления
MongoDB первые впечатления
fudz1k
 
20 апреля, DEV {highload} - конференция о Highload веб-разработке, "Когда сто...
20 апреля, DEV {highload} - конференция о Highload веб-разработке, "Когда сто...20 апреля, DEV {highload} - конференция о Highload веб-разработке, "Когда сто...
20 апреля, DEV {highload} - конференция о Highload веб-разработке, "Когда сто...
IT-Portfolio
 
Dev {highload}. When you should do your own db.
Dev {highload}. When you should do your own db.Dev {highload}. When you should do your own db.
Dev {highload}. When you should do your own db.
Oleg Kwerty
 
поиск информации с использованием компьютера на зачёт
поиск информации с использованием компьютера на зачётпоиск информации с использованием компьютера на зачёт
поиск информации с использованием компьютера на зачёт
vfhbzgjnfgrbyf123456
 

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

Управление Данными. Лекция 6
Управление Данными. Лекция 6Управление Данными. Лекция 6
Управление Данными. Лекция 6
 
Как размножается Sphinx
Как размножается SphinxКак размножается Sphinx
Как размножается Sphinx
 
Cфинкс и поиск терабайта
Cфинкс и поиск терабайтаCфинкс и поиск терабайта
Cфинкс и поиск терабайта
 
ElacticSearch в связке с MODX Revo - MODX Meetup Minsk
ElacticSearch в связке с MODX Revo - MODX Meetup MinskElacticSearch в связке с MODX Revo - MODX Meetup Minsk
ElacticSearch в связке с MODX Revo - MODX Meetup Minsk
 
Инфраструктура социального проекта
Инфраструктура социального проектаИнфраструктура социального проекта
Инфраструктура социального проекта
 
Lect1
Lect1Lect1
Lect1
 
Sphinx search
Sphinx searchSphinx search
Sphinx search
 
Meet up khabarovsk_ifind
Meet up khabarovsk_ifindMeet up khabarovsk_ifind
Meet up khabarovsk_ifind
 
массивы Php
массивы Phpмассивы Php
массивы Php
 
Sphinx
SphinxSphinx
Sphinx
 
MongoDB первые впечатления
MongoDB первые впечатленияMongoDB первые впечатления
MongoDB первые впечатления
 
20 апреля, DEV {highload} - конференция о Highload веб-разработке, "Когда сто...
20 апреля, DEV {highload} - конференция о Highload веб-разработке, "Когда сто...20 апреля, DEV {highload} - конференция о Highload веб-разработке, "Когда сто...
20 апреля, DEV {highload} - конференция о Highload веб-разработке, "Когда сто...
 
Dev {highload}. When you should do your own db.
Dev {highload}. When you should do your own db.Dev {highload}. When you should do your own db.
Dev {highload}. When you should do your own db.
 
SEO-Friendly Websites
SEO-Friendly WebsitesSEO-Friendly Websites
SEO-Friendly Websites
 
Сниппеты для сайта, как их делать своими руками
Сниппеты для сайта, как их делать своими рукамиСниппеты для сайта, как их делать своими руками
Сниппеты для сайта, как их делать своими руками
 
поиск информации с использованием компьютера на зачёт
поиск информации с использованием компьютера на зачётпоиск информации с использованием компьютера на зачёт
поиск информации с использованием компьютера на зачёт
 
Семантика
Семантика Семантика
Семантика
 
IMU_RBS
IMU_RBSIMU_RBS
IMU_RBS
 
Принципы работы поисковой системы
Принципы работы поисковой системыПринципы работы поисковой системы
Принципы работы поисковой системы
 
Принципы работы поисковой системы
Принципы работы поисковой системыПринципы работы поисковой системы
Принципы работы поисковой системы
 

Último

ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
Ирония безопасности
 
CVE. The Fortra's GoAnywhere MFT [RU].pdf
CVE. The Fortra's GoAnywhere MFT [RU].pdfCVE. The Fortra's GoAnywhere MFT [RU].pdf
CVE. The Fortra's GoAnywhere MFT [RU].pdf
Хроники кибер-безопасника
 
Cyberprint. Dark Pink Apt Group [RU].pdf
Cyberprint. Dark Pink Apt Group [RU].pdfCyberprint. Dark Pink Apt Group [RU].pdf
Cyberprint. Dark Pink Apt Group [RU].pdf
Хроники кибер-безопасника
 
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdfСИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
Хроники кибер-безопасника
 
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Ирония безопасности
 
2023 Q4. The Ransomware report. [RU].pdf
2023 Q4. The Ransomware report. [RU].pdf2023 Q4. The Ransomware report. [RU].pdf
2023 Q4. The Ransomware report. [RU].pdf
Хроники кибер-безопасника
 

Último (9)

ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
 
Ransomware_Q3 2023. The report [RU].pdf
Ransomware_Q3 2023.  The report [RU].pdfRansomware_Q3 2023.  The report [RU].pdf
Ransomware_Q3 2023. The report [RU].pdf
 
CVE. The Fortra's GoAnywhere MFT [RU].pdf
CVE. The Fortra's GoAnywhere MFT [RU].pdfCVE. The Fortra's GoAnywhere MFT [RU].pdf
CVE. The Fortra's GoAnywhere MFT [RU].pdf
 
Cyberprint. Dark Pink Apt Group [RU].pdf
Cyberprint. Dark Pink Apt Group [RU].pdfCyberprint. Dark Pink Apt Group [RU].pdf
Cyberprint. Dark Pink Apt Group [RU].pdf
 
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdfСИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
 
MS Navigating Incident Response [RU].pdf
MS Navigating Incident Response [RU].pdfMS Navigating Incident Response [RU].pdf
MS Navigating Incident Response [RU].pdf
 
Malware. DCRAT (DARK CRYSTAL RAT) [RU].pdf
Malware. DCRAT (DARK CRYSTAL RAT) [RU].pdfMalware. DCRAT (DARK CRYSTAL RAT) [RU].pdf
Malware. DCRAT (DARK CRYSTAL RAT) [RU].pdf
 
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
 
2023 Q4. The Ransomware report. [RU].pdf
2023 Q4. The Ransomware report. [RU].pdf2023 Q4. The Ransomware report. [RU].pdf
2023 Q4. The Ransomware report. [RU].pdf
 

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