Пояснение | В рамках проекта Sphinx реализована поддержка полнотекстового поиска для любых типов хранилищ MySQL, включая InnoDB. В последних версиях дополнительно поддерживается СУБД PostgreSQL. Кроме, того приложение привносит ряд дополнительных новшеств, например, создание распределенных поисковых запросов.
Так как автор проекта (Andrew Aksyonoff) проживает в России, то в Sphinx имеется отличная поддержка русского языка, включая возможность подключения русскоязычного стеммера.
Что касается поискового механизма Sphinx (выше речь шла о патче для MySQL входящем в комплект Sphinx), то кроме MySQL имеется поддержка PostgreSQL. При измерении производительности Sphinx выполнил запрос в 15 раз быстрее чем Mnogosearch, в среднем потратив 0.1 сек при индексации 2-4 Гб текста. Разработчики заявляют, что Sphinx неплохо себя чувствует при объемах индексируемых данных до100 Гб или 100 миллионов документов.
Основные особенности Sphinx:
- Высокая скорость индексации (до 10 Мб/сек);
- Высокая скорость поисковой выборки (0.1 сек. для запроса в базе с 2-4 Гб проиндексированного текста);
- Высокая масштабируемость (один CPU может использоваться для обслуживания 100 Гб текста и 100 млн. документов);
- Возможность организации распределенного на несколько узлов поискового механизма;
- Нативная поддержка MySQL, поддерживаются как стандартные движки MyISAM и InnoDB, так и собственное хранилище SphinxSE
- Поддержка поиска по заданным фразам;
- Возможность вероятностного поиска с использованием ранжирования с элементами нечеткой логики;
- Поддержка стеммеров для русского и английского языков;
- Поддержка индексации любого числа полей в документах, вес для которых может изменяться на лету;
- Поддержка групп документов;
- Возможность определения запрещенных слов
- Поддержка различных моделей поиска (совпадение всех ключей, совпадение фразы целиком, совпадение отдельных слов);
- XML интерфейс для интеграции со сторонними проектами;
- Доступно API для PHP, Python, Java, Perl и Ruby.
|