1. Поисковые движки.
Sphinx Search Engine.
Докладчик: Роман КудлайДокладчик: Роман Кудлай
Roman.Kudlay@softline.ruRoman.Kudlay@softline.ru
2. Нам на сайте нужен поиск
Заказчик: нам на сайте нужен поиск!
Заказчик: Быстро и «по-простому»!!!
Разработчик: Будет медленно работать!
Заказчик: Ничего, главное – быстро запустить!
Разработчик: SELECT * FROM news WHERE text LIKE %query%
Заказчик: А почему так медленно?
Разработчик: Ну так «по-простому» же!!!
1/20
3. Что нам дают поисковые движки
Скорость поиска
Морфология
Релевантность
Гибкость
Снижение нагрузки на основной сервер(а)
Поиск во время индексирования
Масштабируемость
Поиск по файлам
2/20
7. GSA
Программно-аппаратный комплекс
Интеграция с системами документооборота
Индексирование файлов, БД и сайтов
Быстрая интеграция
Привычный вывод результатов поиска
Высокая скорость
От $10 000 в год
6/20
8. FAST
Программный продукт
Интеграция с SharePoint
Очень много настроек
Поддержка каталогов товаров
Высокая скорость
Только Ms сервера + ферма с многими лицензионными
продуктами
От $40 000
7/20
10. Lucene
Легкий поисковик
Полноценное поисковое решение для малых проектов
Open source
Порты на другие языки
Lucene4c — C
CLucene — C++
MUTIS — Delphi
Plucene — Perl
Kinosearch — Perl
PyLucene (Wrapper — not port) — Python
Ferret и RubyLucene — Ruby
Zend_Lucene — PHP
Montezuma — Lisp
Lucene.Net — C#
9/20http://ru.wikipedia.org/wiki/Apache_Lucene
11. Коротко о Sphinx Search
Тип поисковая система
Разработчик Андрей Аксенов
Написана на C++
Операционная система Кроссплатформенное программное обеспечение
Последняя версия 2.0.4-release (Mar 2012)
Лицензия GPL 2.0 и проприетарная
Сайт sphinxsearch.com
10/20http://ru.wikipedia.org
12. Про Sphinx немного подробней
Высокая скорость индексации (до 10-15 МБ/сек на ядро);
Высокая скорость поиска (до 200—300 запросов в секунду на каждое ядро с 1000000 документов);
Высокая масштабируемость (крупнейший известный кластер индексирует до 8 000 000 000
документов и поддерживает более 50 миллионов запросов в день);
Распределенный поиск;
Поддержка нескольких дополнительных атрибутов для каждого документа (то есть группы,
временные метки и т. д.);
Поддержка стоп-слов;
Поддержка индексирования XML документов;
SQL-подобный синтаксис через MySQL протокол (с версии 0.9.9)
Пакетное и инкрементальное (real-time) полнотекстовое индексирование;
Поддержка однобайтовых кодировок и UTF-8;
Поддержка морфологического поиска;
Родная поддержка MySQL, поддержка ODBC совместимых баз данных (MS SQL, Oracle и т. д.);
Поддержка словоформ;
Поддержка пользовательских функций
http://ru.wikipedia.org 11/20
13. Общая архитектура (популярный вариант)
PHP
MySQL
демон
searchd
Sphinx демон
MySQL прямое подключение
Index
IndexerXML Pipe
Обычное
взаимодействие
Поисковые
запросы
12/20