Поисковые движки. Sphinx Search Engine. Докладчик: Роман Кудлай
Нам на сайте нужен поиск Заказчик: нам на сайте нужен поиск! Заказчик: Быстро и «по-простому»!!! Разработчик: Будет медленно работать! Заказчик: Ничего, главное – быстро запустить! Разработчик: SELECT * FROM news WHERE text LIKE %query% Заказчик: А почему так медленно? Разработчик: Ну так «по-простому» же!!! 1/20
Что нам дают поисковые движки Скорость поиска Морфология Релевантность Гибкость Снижение нагрузки на основной сервер(а) Поиск во время индексирования Масштабируемость Поиск по файлам 2/20
Что мы теряем Гибкость Простота архитектуры Актуальность Ресурсы 3/20
Популярные поисковые движки Google Search Appliance (GSA) Microsoft FAST Sphinx Search Apache Lucene MySQL full-text search? 4/20
Общая архитектура Сайт Поисковая система Индексирование Поиск 5/20
GSA Программно-аппаратный комплекс Интеграция с системами документооборота Индексирование файлов, БД и сайтов Быстрая интеграция Привычный вывод результатов поиска Высокая скорость От $ в год 6/20
FAST Программный продукт Интеграция с SharePoint Очень много настроек Поддержка каталогов товаров Высокая скорость Только Ms сервера + ферма с многими лицензионными продуктами От $ /20
Sphinx Высокая скорость Кластеризация Индексирование документов и БД Кастомизация Легкая интеграция с приложениями Open source 8/20
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/20
Коротко о Sphinx Search Типпоисковая система РазработчикАндрей Аксенов Написана наC++ Операционная системаКроссплатформенное программное обеспечение Последняя версия2.0.4-release (Mar 2012) ЛицензияGPL 2.0 и проприетарная Сайтsphinxsearch.com 10/20
Про Sphinx немного подробней Высокая скорость индексации (до МБ/сек на ядро); Высокая скорость поиска (до запросов в секунду на каждое ядро с документов); Высокая масштабируемость (крупнейший известный кластер индексирует до документов и поддерживает более 50 миллионов запросов в день); Распределенный поиск; Поддержка нескольких дополнительных атрибутов для каждого документа (то есть группы, временные метки и т. д.); Поддержка стоп-слов; Поддержка индексирования XML документов; SQL-подобный синтаксис через MySQL протокол (с версии 0.9.9) Пакетное и инкрементальное (real-time) полнотекстовое индексирование; Поддержка однобайтовых кодировок и UTF-8; Поддержка морфологического поиска; Родная поддержка MySQL, поддержка ODBC совместимых баз данных (MS SQL, Oracle и т. д.); Поддержка словоформ; Поддержка пользовательских функций 11/20
Общая архитектура (популярный вариант) PHP MySQL демон searchd Sphinx демон MySQL прямое подключение Index Indexer XML Pipe Обычное взаимодействие Поисковые запросы 12/20
Простой вариант архитектуры Sphinx сервера Index Indexer searchd Server 13/20
Кластерный вариант архитектуры Sphinx сервера Index Indexer searchd Master searchd Slave Index searchd Slave Index searchd Slave Indexer 14/20
Кластерный вариант архитектуры Sphinx сервера Index Indexer searchd Node1 Index searchd Node3 Index searchd Node2 Indexer 15/20
Поиск 16/20
Поиск 17/20
Suggester 18/20
Релевантность 19/20
Вопросы 20/20