Sphinx в реальных проектах: шишки и плюшки

Preview:

DESCRIPTION

 

Citation preview

Sphinx на

реальных проектах

Что такое Sphinx?

Система полнотекстового поиска, разработанная Андреем Аксеновым.

Open SourceGPL 2.0

Высокая скорость индексации600 Mb/мин (Apache Lucene – 20 Mb/мин)

Высокая скорость поиска150-250 req/s на 1M документов

Конкуренты?

MySQL FTS

+ из коробки- позиция слова - один FT-index

Zend Lucene

+ написан на PHP- ме-е-е-е-едленный

Mb/h

Хотите еще?

Sphinx (англ. SQL Phrase Index) – создавался специально для индексации БД.

C++ - бинарник

MySQL protocol

Дополнительные поля

Delta-индекс

Кластеризация

С чего начать?

Имеем проект и Sphinx, как их сконнектить?

1. Качаем, ставим или собираем

2.Пишем конфиг

Конфиг

source documents_src {type = mysqlsql_host = localhostsql_user = test-usersql_pass = god-love-sexsql_db = test-dbsql_port = 3306

sql_query = SELECT id, title, content FROM documents}

index documents {source = documents_srcpath = /var/sphinx/data/test1charset_type = utf-8

}

С чего начать?

Имеем проект и Sphinx, как их сконнектить?

1. Качаем, ставим или собираем

2. Пишем конфиг

3. Индексируем источник

4.Ищем

PHP

Профит!!!

Что пишут в новостях?

• Поиск информации в белорусских электронных СМИ

Где-то тут писали…

• Поиск среди 1 млн. новостей с учетом морфологии

• Фильтрация по категориям и источникам

• Сортировка по дате и рейтингу

Хоть прячься, все равно моя ты

Режимы поиска

• Со всеми словами

• С точной фразой

• С любым из ключевых слов

На фене ботаешь?

Язык запросов

• Кошки & мышки• Кошки | мышки• Кошки –мышки• (кошки мышки)• “кошки мышки”• “кошки собаки

мышки”~5• “Игра в кошки

мышки”/2• Кошки << мышки

Так ли очевидно?

Проблемы морфологии

Ищем _свежие_ новости

Main + Delta

Пишем плагин

Sphinx + SugarCRM = Белый Lexus :)

Хочу все и сразу

• Полнотекстовый поиск по нескольким полям одновременно

• Учет релевантности

Внезапно

• GUID вместо целочисл. ID

• Сортировка по полям

• Индексация связанных данных

Все равно прикручу

• Добавляем auto_increment

• Сортируем на стороне MySQL

• Используем View

Еще истории...

Facet search

Вопросы?

Recommended