sphinx + mongodb: работаем вместе

10
«построение архитектуры высоконагруженного проекта» ©2012. QuartSoft Corp. MongoDB + Sphinx : живем вместе Евгений Дмитриченко, CTO компании «КвартСофт» [email protected] www.quartsoft.com

Upload: quartsoft

Post on 03-Feb-2015

2.386 views

Category:

Documents


0 download

DESCRIPTION

"Sphinx + MongoDB: работаем вместе."Евгений Дмитриченко, CTO, QuartSoft

TRANSCRIPT

Page 1: Sphinx + MongoDB: работаем вместе

«построение архитектуры

высоконагруженного проекта»

©2012. QuartSoft Corp.

MongoDB + Sphinx : живем вместе

Евгений Дмитриченко,CTOкомпании «КвартСофт»[email protected]

www.quartsoft.com

Page 2: Sphinx + MongoDB: работаем вместе

2

Сущности в системе

©2012. QuartSoft Corp. www.quartsoft.com

Пользователи

Категории (граф)

Вопросы

Ответы

Комментарии

Page 3: Sphinx + MongoDB: работаем вместе

3

Необходимые представления

©2012. QuartSoft Corp. www.quartsoft.com

Все посты пользователя: вопросы, ответы,

комментарии

Лента определенного вопроса: ответы, комментарии

Все посты, удовлетворяющие условиям поиска

Все посты из определенной категории

Популярные вопросы

Page 4: Sphinx + MongoDB: работаем вместе

4

MongoDB

Документо-ориентированная система управления базами

данных

БД состоит из коллекций

Коллекции состоят из документов

Документы состоят из полей

Выборки возвращают курсоры

©2012. QuartSoft Corp. www.quartsoft.com

Page 5: Sphinx + MongoDB: работаем вместе

5

MongoDB

Отсутствие предопределенной структуры документа

Быстрая асинхронная запись

Горизонтальная масштабируемость

MapReduce

©2012. QuartSoft Corp. www.quartsoft.com

Page 6: Sphinx + MongoDB: работаем вместе

6

Sphinx

Система полнотекстового поиска

Высокая скорость индексации и поиска

Масштабируемость

Интеграция с СУБД MySQL, PostgreSQL

Xmlpipe

©2012. QuartSoft Corp. www.quartsoft.com

Page 7: Sphinx + MongoDB: работаем вместе

7

Проблема

©2012. QuartSoft Corp. www.quartsoft.com

Нет прямой интеграции с MongoDB

Строим индекс с помощью xmlpipe2

Решение

Page 8: Sphinx + MongoDB: работаем вместе

8

Проблема

©2012. QuartSoft Corp. www.quartsoft.com

Sphinx не позволяет использовать буквенно-цифровые значения

в качестве ID документов

Генерировать для каждого mongo-документа

пользовательский (сгенерированный руками либо

автоинкрементом в MySQL) цифровой ID:

{ "_id" : ObjectId("4bf2c7f38ead0e0d05070000"), "sid" : 7, "text" :

"Много текста" }

Решение

Page 9: Sphinx + MongoDB: работаем вместе

9

Ссылки

©2012. QuartSoft Corp. www.quartsoft.com

•http://www.mongodb.org/

•The little MongoDB book (http

://express-js.ru/mongo-book/)

•http://sphinxsearch.com

Page 10: Sphinx + MongoDB: работаем вместе

10

Вопросы? Спасибо!

Дмитриченко ЕвгенийCTOкомпании «КвартСофт»

[email protected]

©2012. QuartSoft Corp. www.quartsoft.com