Использование поисковика Sphinx для фильтров и поиска по сайту

Думаю ,что если на вашем сайте количество товара больше 2000 , то в принципе уже можно задуматься над тем, чтобы поиграться со Sphinx. Тем паче, что в настоящее время для этого даже не нужно размещать сайт на выделенном сервере. Тот же хостинг beget предоставляет возможность использовать Sphinx на любом обычном тарифе виртуального хостинга. Ссылка на документацию.

Sphinx - это система полнотекстового поиска, которая отличается высокой скоростью работы, полноценной интеграцией с такими базами данных как MySQL и PostgreSQL и API для многих популярных языков программирования.

Что в нём самое полезное для интернет-магазинов, так это то, что использование его в качестве основы для работы фильтра и поиска по сайту даёт прирост в скорости выборок на порядок, что не может не радовать.

 

В качестве основы для поисковика удобно брать таблицы для недавно добавленного функционала SmartFilters в юми. Названия этих таблиц начинаются на cms3_filter_index_56_pages_. В эти таблицы через индексацию базы товаров попадают все поля, помеченные как "Фильтрованные", причём в текстовом виде, что уже пригодно для использования Sphinx'ом в качестве поисковика по товарам, да и частично для фильтрации тоже.

 

Что ещё удобно в Sphinx, так это то, что к нему можно обращаться как через АПИ, так и просто как к mysql серверу через sql запросы.

В итоге получилось, что Sphinx мало того, что очень быстро ищет по своим индексам текстовые данные, так и на порядок быстрее выдаёт поиск по строгим условиям. типа ?filter[color][]=7270. 

Группировки тоже влёт проходят, в частности, чтобы получить MIN и MAX по цене для текущих условий выборки товаров.

Готовый полученный пример можно глянуть на satra.ru.

Назад к списку