Долгий поиск

Главные вкладки

Аватар пользователя dimm2 dimm2 1 июля 2016 в 9:32

Всем привет! Проблема с поиском. Мускуль грузит проц на 100 процентов. При этом еще и поиск осуществляется очень долго (больше минуты по 50 000 нодам, каждая нода по 100 слов). Все поля, используемые в поиске проиндексированы.

В качестве фильтра используется две группы критериев. В первой группе критерии объединяются через AND. Во второй группе находится один групповой критерий с двумя возможными значениями, которые объединены через OR.

И вот, например, поиск в БД по шарообразным фруктам/овощам (тип):

Группа 1 (AND)
Диаметр
Цвет
Вес

AND

Группа 2 (OR)
Тип

Так вот если в поисковом фильтре не использовать критерий из второй группы, то страница отрисовывается за секунду. А если использовать, то по минуте висит.

С чего начать для решения проблемы? Сам подумываю просмотреть какой запрос генерируется этим фильтром.

Комментарии

Аватар пользователя gun_dose gun_dose 1 июля 2016 в 21:47

Можно и без солра просто Search API + Facet API уже сами по себе дают огромный прирост производительности по сравнению с раскрытыми фильтрами

Аватар пользователя dimm2 dimm2 14 июля 2016 в 0:03

Решил изменением типа данных для поля "Тип". Фактически там int, а поле было создано как text. Перестройка индекса с новыми настройками дала более чем десятикратный прирост скорости. Загрузка ЦП исчезла, время поиска не отличается при различных комбинациях фильтров.