Sphinx — это поисковая система с открытым исходным кодом, которая позволяет осуществлять полнотекстовый поиск. Наиболее известен тем, что выполняет поиск по большим данным очень эффективно. Индексируемые данные, как правило, могут поступать из самых разных источников: базы данных SQL, текстовые файлы, файлы HTML, почтовые ящики и так далее.
Основные возможности Sphinx
Sphinx помогает включить и повысить ценность поиска и масштабируемости благодаря следующим характеристикам, которые делают Sphinx не заменимым инструментом для поиска данных на сайте.
- Высокая скорость индексации (до 10-15 МБ/сек на каждое процессорное ядро);
- Высокая скорость поиска (до 150—250 запросов в секунду на каждое процессорное ядро с 1 000 000 документов);
- Высокая масштабируемость (крупнейший известный кластер индексирует до 3 000 000 000 документов и поддерживает более 50 миллионов запросов в день);
- Поддержка распределенного поиска;
- Поддержка нескольких полей полнотекстового поиска в документе (до 32 по умолчанию);
- Поддержка нескольких дополнительных атрибутов для каждого документа (то есть группы, временные метки и т. д.);
- Поддержка стоп-слов;
- Поддержка однобайтовых кодировок и UTF-8;
- Поддержка морфологического поиска — имеются встроенные модули для английского, русского и чешского языков; доступны модули для французского, испанского, португальского, итальянского, румынского, немецкого, голландского, шведского, норвежского, датского, финского, венгерского языков;
- Нативная поддержка PostgreSQL и MySQL;
- Поддержка ODBC совместимых баз данных (MS SQL, Oracle и т. д.).
Как работает Sphinx?
Sphinx в качестве источника данных использует базу данных, на основе этого он создает у себя поисковые индексы которые позволяют осуществлять быстрый поиск данных.
Заводчик котов породы канадский сфинкс в программе «УТРО» на СТВ
Для работы с Sphinx используется API через которое код сайта получает по поисковому запросу массив идентификаторов найденных записей, которые потом будут сопоставлены в коде с записям в БД сайта.
Какие проблемы решает Sphinx?
Если объем данных в БД сайта достигает несколько сотен тысяч записей или больше, то поиск по ней стандартными средствами БД будет крайней медленный. Поэтому для решения данной проблемы используют Sphinx.
Основная проблема которую решает Sphinx это быстрый поиск в большом объеме данных, а также решает проблему эффективного полнотекстового поиска.
Выводы
Использование Sphinx вместо MySQL может обеспечить значительные преимущества в скорости, Чем просто использование нативных поисковых возможностей баз данных.
Источник: blog-programmista.ru
Программное обеспечение «Сфинкс»
Для автоматизации бизнес-процессов на основе технологии баз данных разработана автоматизированная информационная система «Сфинкс» – программное обеспечение, которое можно купить с доставкой в Москве в нашем магазине. В основу легло решение, основанное на объектно-ориентированной разработке и проектирования систем. А купить это программное обеспечение можно в Москве на нашем сайте с дополнительным плюсом – доставкой.
5 причин НЕ заводить СФИНКСА! СТРАШНО и ГРУСТНО. ОПЫТ
Рассказываем о характеристиках товаров, предлагаемых сайтом подробнее:
— можно контролировать двери, ворота, турникет и другие входные группы, присутствует функционал, с которым можно установить один вход для контроля или больше одного;
— можно добавить функцию опознания по фото;
— функция отслеживания времени входа и выхода сотрудников через дверь;
— можно также подключить уведомление через СМС о том, что сотрудник пришел на работу.
Больше модификаций, а также разницу между программным обеспечением, можно узнать на нашем сайте. Также можно добавить представленные в каталоге товары в список для сравнения, чтобы было проще выбрать подходящее ПО, или обратиться к нашему сотруднику за полезной консультативной помощью.
Источник: pro-locks.ru
Презентация: «Sphinx — полнотекстовый поиск на сайте, просто и доступно»
Вкратце: хочу сделать презентацию и пару раз выступить на конференциях интернет магазинов. Написал текст презентации, нужны отзывы. Надеюсь на вашу помощь в составлении грамотного и доступного текста.
Текущий текст презентации под катом
Общие сведения о полнотекстовом поиске
Полнотекстовый поиск – это по сути гугл и яндекс технологии: пользователь вводит поисковый запрос – получает ответ в виде определенного набора страниц. На сайте интернет магазина это скорее всего будет список продуктов, наиболее близко подходящих под поисковый запрос. Есть такое понятие – релевантность, так вот, она важна. Также важны: синонимы, опечатки, морфология и обычная логика обычного рядового покупателя.
В интернет магазине, к примеру, слова «купить», «лучший», «качественный» можно просто игнорировать, так как они ничего не значат. А по словам «модный», «дорогой», «епл айфон», «bosh аккумулятор для киа сид» можно однозначно определить, что именно нужно человеку.
Вот вкратце о том, для чего нужен полнотекстовый поиск.
Зачем нужен поиск на сайте: достоинства и недостатки
Основная причина и цель – это конверсия посетителя в покупателя, то есть процент покупок относительно посетителей на сайте. Чем проще человеку найти товар – тем больше вероятность, что он станет покупателем. С каждым днем покупатели становятся все ленивее и привыкают к удобным поисковым технологиям других магазинов, поэтому отсутствие такого поиска на своем сайте может очень негативно сказаться на продажах.
Кроме того есть специфичная номенклатура, которую простым проходом по каталогу не найти и нужен именно полнотекстовый поиск: это когда более 1000 наименований, или тяжело подобрать именно тот товар, что нужно. В данном случае компьютер упрощает задачу выбора и помогает человеку сделать покупку зряче, а не методом «научного тыка».
Недостатки: $100-$200 на разработку поискового модуля для сайта.
Реализации поиска на Сфинкс (SphinxSearch): ОС, варианты установки, языки программирования
Сфинкс — продукт с открытым исходным кодом. Это фактически поисковый сервер, разработанный с нуля, для высоконагруженных проектов, с настраиваемой релевантностью (имеется в виду качество поиска), а также простотой интеграцией в любой проект. Он написан на C++ и работает на Linux (RedHat, Ubuntu и т.д.), Windows, MacOS, Solaris, FreeBSD и некоторых других менее популярных системах.
Сфинкс позволяет хранить подготовленные индексы текстовых данных, производить поиск по базе данных SQL, NoSQL хранилища, или просто по файлам на сервере быстро и легко. Он может индексировать данные на лету, добавлять к уже существующим новые индексные данные, работая в режиме онлайн не перегружая сервер.
Различные возможности обработки текста дают программисту тонкую настройку Sphinx для требований вашего приложения, а также ряд функций, гарантирующих, что вы сможете настроить качество поиска именно так, как вам это нужно. Есть два варианта подключения:
• Поиск по SphinxAPI — обычный АПИ
• SphinxQL — аналог стандартного SQL
Сфинкс кластера могут масштабироваться до миллиардов документов и десятки миллионов поисковых запросов в день. Такого рода нагрузки выдерживаются на сайтах, как Craigslist, DailyMotion, Netlog, и т.д.
Реальный пример поисковых запросов в интернет магазине автозапчастей
Авто запчастями, а точнее продажей интернет магазинов по запчастям, наша компания занимается давно, плодотворно и довольно успешно. Но в силу ряда причин релевантный поиск понадобился только сейчас.
Основная причина, скорее всего в том, что большинству запчастей полнотекстовый поиск не подходит. Но есть 5-10% товаров, для которых он катастрофически нужен и без него уж никак. А наш стандартный поиск с прямыми по своей сути кросс связями и указанием четкой модели и марки авто из каталога запчастей, для этой группы товаров не работает. Пример таких «неправильных» товаров: масла, шины, аккумуляторы, автолампы, дворники и другие подобные часто продаваемые продукты.
Средний прайс по запчастям небольшой рядовой компании — 2-10 млн позиций, соответственно 10% от этой базы и будут занимать нужные нам данные. Поэтому мы решили внедрить движок sphinxsearch.com в своем продукте. Подробнее о данной реализации можно почитать на Хабре: habrahabr.ru/blogs/sphinx/132118
Углубленное изучение поискового языка запросов
Основной функционал поиска – это настраиваемые веса для полей, а также методы поиска. Для того, чтобы работала морфология и в запросе «масла Castrol 5W40» нашлись документы с текстом «Масло» и «15W40» — нужно одновременно использовать символ «*» и поиск по словоформе «масл», а для этого нужен построитель запросов, который работает именно в режиме «SPH_MATCH_EXTENDED2».
Сортировать по-умолчанию можно как по цене, так и по релевантности, так и по комплексу таких параметров. Можно задать для каждой группы товаров свой метод релевантности и порядок выдачи результатов, особенно это актуально, когда документов более сотни.
Инкрементные индексы позволяют добавлять новые продукты и документы на лету, не останавливая работу вашего интернет магазина.
Ну и самое важное: синонимы. В нашем примере можно использовать запрос «масла кастрол 5W40» и он найдет то же, что и «масла Castrol 5W40». В примере с «C#» нужно включать такие нестандартные словоформы, чтобы они не обрабатывались по стандартной схеме индекса и работали вручную именно так, как вы их настроите. Только вы знаете, какой именно смысл в вашем проекте несет фраза, к примеру «C#» = «ДО ДИЕЗ для музыкантов».
Кто сможет сделать такой поиск на базе сфинкс?
Любой джуниор программист, знакомый с английским языком и умеющий читать документацию на сайте sphinxsearch.com/docs
Есть также немного русской документации и пару статей на русском языке.
Никаких ограничений фактически нету, разве что боязнь нового подхода к поиску. Кажется, что это все сложно и очень дорого. На самом деле это все просто, быстро и дешево. На хабре есть специальный блог, в котором отзывчивые программисты, включая русскоязычного разработчика движка, отвечают на все возникающие вопросы.
Спасибо, буду рад ответить на возникшие вопросы
Источник: habr.com