
Новая версия модуля Поиска 7.0.5 стала доступна пользователям через систему обновлений SiteUpdate.
В целом, модуль поиска работал всегда достаточно эффективно.
Но при большом объеме материалов (сотни тысяч документов), скорость поиска оставляла желать лучшего.
Некоторые портальные проекты отключали поиск, чтобы уменьшить нагрузку на сервер.
Сегодня ситуация изменилась.[spoiler]
С чем были связаны нагрузки, предыдущей версии поиска.
Схематично поиск работает следующим образом:
1. Запрос пользователя разбирается.
2. Составляется запрос к морфологическому индексу.
3. Запрос исполняется базой данных.
3.1. Выборка (фильтр) из индекса в соответствии с поисковой фразой.
3.2. Сортировка.
3.3. Выдача первых 500-от (на самом деле в настройках модуля можно задать и другое число).
4. Его результаты формируют ответ.
Так вот на больших проектах в 3.1 в 3.2 "проходит" ОЧЕНЬ много данных.
Как следствие, во время сортировки большого объема данных происходит сильное падение производительности.
И MySQL не так силен, да и дисковые операции в любом случае не быстрые для сортировки, особенно для массовых одновременных запросов.
Новая версия модуля поиска избавилась от проблем с сортировкой больших объемов информации.
В настройках модуля поиска появилась новая галочка "Быстрый поиск".
В полнотекстовом индексе модуля с каждым словом каждого документа связана величина контрастности.
Она напрямую связана с релевантностью и позицией документа в выдаче результатов.
На шаге фильтрации 3.1 мы сразу теперь отсекаем все документы с заведомо низкой контрастностью и сортируем уже объем данных чуть больше размера окончательной выдачи (500).
Именно это и делает новая настройка. Перед формированием запроса строится гистограмма распределения
контрастностей поискового слова и в фильтр добавляется условие минимальной контрастности. Результаты
вычисления минимальной контрастности кешируются в управляемом кеше базы данных.
Вот так замысловато

В общем, искать будет заметно быстрее при больших объемах данных.
Есть небольшие побочные эффекты для ряда запросов.
Мы еще думаем над их устранением.
Но для пользователей с большим объем информации новый вариант поиска будет предпочтительнее.
Подробности как включить поиска и детали работы представлены в закрытом форуме.
Сейчас пойду опробую.
Спасибо=) за сей хороший продукт
p.s. извините, что опять не в тему, просто навело на мысли
Вы можете отключить наш поиск и сделать свой, обработать события или индексировать любой контент за пределами продукта.
При больших объемах элементов и тегов у них - построение облака тегов так же было Очень тяжелым по времени и производительности.