Модуль Searchanise - потенциальный "убийца" сайта

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


Казалось бы запрос безобиден, да только выборка осуществляется по текстовому полю и когда у вас там 100-200 записей все вроде ок, но вот когда у вас 500 000 таких записей… В общем все очень печально.

Вторая печаль в том что и информация там такая что могла быть вынесена в отдельные поля и даже если там нужно действительно все хранить вместе то сделать хотя бы хеш чтобы можно было это все дело сделать индексируемым.

Если кто-то хочет там что-то откомментировать в плане “да установите процессор помощнее” то скажу сразу что проблемы на сайтах которые используют Gold версии последних ксеонов и это не поможет так как процесс выборки осуществляются в 1 поток и по всей базе. В общем тут не поможет даже если это будет 100500 ядерный кластер так как обход будет осуществлятся по 1 поток с построчным чтением каждой строчки, очень еффективненько…

Буду благодарен если тему откомментируют и разработчики. Если нету реакции то боюсь что продолжать похожие обращение не будут иметь смысла, это не ради самопиара, а хотелось бы чтобы такие вещи исправлялись тем более ничего сложного нету.

2 лайка

Я пользовался этим сервисом только для нахождения категорий, потому что в штатном поиске нет такой выкладки. Когда продуктов стало больше категорий, тогда просто установил обычный модуль Живой поиск, опять таки из-за необходимости показывать категории в результатах. Охотно верю, что Searchanisе - убийца больших сайтов. Вот не догадался проверить как он сказывается на результатах speedpage insights…

Если даже разработчики исправят код, то я все равно не буду пользоваться услугами бесплатного модуля Searchanise, если за них придется платить по 50 долларов в месяц.

Бойтесь данайцев, дары приносящих…

Проблему исправим, конечно, к следующему релизу, но это не точно. Изучим точно.

P.S. Думаю заголовок слишком громкий для данной проблемы.

2 лайка

При нормальной работе, больше 1000 элементов в этой таблице никогда не бывает. Если у вас больше, то значит у вас не запускается очередь отправки. Это может быть связано с блокировкой ip сервера Searchanise или с тем что один из ваших продуктов имеет очень большое (несколько мегабайт) изображение и при обработке такого изображения PHP не хватает памяти.
Другими словами, проблема в хостинге.
Пожалуйста обратитесь в саппорт Searchanise feedback@searchanise.com и мы поможем вам разобраться в чем дело.

1 лайк

Не понятна суть проблемы.
В том, что Searchanise платный? Скорее всего у вас мало трафика и поисковых запросов, вам просто не нужен Searchanise.
Searchanise — это отдельные сервер для поисковых запросов, это значит он разгружает ваш сервер. 50$ это не дорого для подобных решений.
Searchanise — это продуманный поисковой виджет, который повышает конверсию. Мы регулярно проводим исследования, рост конверсии приносит дополнительные заказы, что опять же окупает расходы на Searchanise.
Экономика на пальцах:

  1. 10000 посетителей из них примерно 5% пользуют поиск
  2. 500 посетителей пользуют поиск, из них покупают 4% без Searchanise , что равняется 20 заказам
  3. Если включить Searchanise, то конверсия вырастет до 8%, что принесёт 40 заказов.

Конечно, это зависит от бизнеса.

Не очень хочу устраивать халивар на эту тему, цифры выше у нас подтверждены реальными клиентами и аналитикой.

Данную аналитику можно посмотреть в Google Analytics, если включить отчёт “Поиск на сайте”.
Могу подсказать, как настроить у себя аналитику, чтобы посмотреть свои цифры по конверсии через поиск.

3 лайка

Заголовки такие потому что это реальный кейс с реальными проблемами.


Это график 4х ядерной машины, вы можете спорить сколько угодно, но одно дело накопление записей а другое дело банально не корректно реализованный запрос к базе. Моя задача не унизить а сделать работу сайтов корректной. Кроме загрузки CPU создается громадная нагрузка на дисковую систему что ещё хуже. Задача программиста исключить такую возможность и уведомить пользователя что айпи заблокирован или модуль работает не корректно, согласитесь что пользователь даже может не догадываться что такова проблема существует. В общем в моих интересах донести что де факто проблема есть и де факто модуль, корректно он работает или нет но таки ложит сайт. После очистки таблицы, как видите, нагрузка упала до уровня 10%. Но к сожалению мы не можем более детально анализировать ваш код чтобы установить все причинно-следственные связи, это простая констатация факта и предложение как решить существующий баг.

Ну ок, есть график и информация. Не понятно, какие процессы происходят помимо этого на машине. Предположим, приходит какой-то зверь и делает массовое обновление и импорт 100 тыс. товаров. Все они попадают в очередь, дальше привет и ваши пики.

Вполне вероятно, что исправив бутылочное горлышко в одном месте, оно не выстрелит в другом.
Возможны и другие сценарии, в том числе специфические под ваше приложение и сервер.

Лучший способ, это написать в тех. поддержку, тем более она бесплатная и сильная.

В настоящий момент, это единичный случай и массово такой проблемы я не слышал.

Практически любой модуль может называться “убийцей” тогда, нужно только захотеть подобрать сценарий.

Вы написали на feedback@searchanise.com ? Программист команды Searchanise подключится и посмотрит.

Задача программиста исключить такую возможность и уведомить пользователя что айпи заблокирован или модуль работает не корректно, согласитесь что пользователь даже может не догадываться что такова проблема существует.

Да, вы правы, мы должны были предусмотреть возможность роста этой таблицы до больших размеров. Ситуация очень редкая, но вполне возможная.

В следующей версии CS-Cart мы придумаем как убрать нагрузку при очистке этой таблицы и добавим оповещение о проблемах отправки

Сейчас если у вас возникнет такая проблема то нужно нажать Force Re-indexation в панели администрирования Searchanise, это очистит очередь и запустит повторный экспорт данных что актуализирует их.

Если проблема возникает постоянно то обратитесь в саппорт Searchanise feedback@searchanise.com и мы поможем вам

Мне стала интересна данная тема, я попросил найти список инцидентов по условию: Падал сайт по причине плохого MySQL запроса от модулей поиска. Один мне показался очень интересным. Какой модуль можете догадаться сами, но не Searchanise.

Спасибо, и надеюсь что и в дальнейшем общими усилиями будем решать такие проблемы оперативно! Это в общих интересах :slight_smile:

1 лайк

Добрый день ,хочу подключить данный поиск , подскажите устранена ли проблема и какой модуль @dbazhenov создавал конфликт ?

1 лайк

Добрый день. Не могу оплатить подписку на поиск. Как я могу это сделать?

Купите поиск от cs-commerce

1 лайк