Долгий поиск

Версия Drupal: 
Ключевые слова: 
Модули и темы: 
Пт, 01/07/2016 - 06:32

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

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

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

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

AND

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

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

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

0 Спасибо

Комментарии

Аватар пользователя gun_dose
10 months 2 дня назад gun_dose #

Начните с описания проблемы. Чем ищете? Фасетами или раскрытыми фильтрами? Апач солр стоит?

0 Спасибо
Аватар пользователя dimm2
10 months 1 день назад dimm2 #

Раскрытыми фильтрами.
Апач солр не стоит, оперативы не хватает. На будущее в планах :-)

0 Спасибо
Аватар пользователя gun_dose
10 months 1 день назад gun_dose #

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

0 Спасибо
Аватар пользователя dashiwa
10 months 1 день назад dashiwa #

hook_query_alter()

0 Спасибо
Аватар пользователя dimm2
9 months 2 недели назад dimm2 #

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

0 Спасибо