2015-08-05 2 views
0

Я разрабатываю сайт Magento Community Edition, используя Solr через расширение SolrBridge. Система работает быстро, когда всего несколько тысяч SKU, но после импорта ~ 100 тыс. Продуктов поисковые запросы значительно замедлились. Загрузка страницы продолжалась от секунды до более двух секунд, а мониторинг «Новая реликвия» идентифицировался на этот раз в ожидании ответа от Solr.Solr Range Query Slow (SolrBridge in Magento CE)

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

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

facet.range=GBP_0_price_decimal&f.GBP_0_price_decimal.facet.range.start=0&f.GBP_0_price_decimal.facet.range.end=1000000&f.GBP_0_price_decimal.facet.range.gap=100&f.GBP_0_price_decimal.facet.mincount=1 

С этим кодом включен, поиск занимает в области 1,7-1,8 секунды. Без него поиск занимает всего несколько миллисекунд.

Это, на мой взгляд, определение схемы для поля. Это, кажется, индексируются:

<dynamicField name="*_decimal" type="float" indexed="true" stored="true" />

Любая идея, что замедление фактор? Solr работает с одним ядром. Он находится в том же физическом поле, что и Magento и база данных. Спецификации коробки относительно высоки - 64 ГБ оперативной памяти и два Xeon E5620s.

Спасибо за любую помощь. Если вам нужна дополнительная информация для оказания помощи, сообщите мне.

+1

Разрыв грани, возможно, слишком мал. Вы генерируете (потенциально) 10000 ковшей для огранки в диапазонах. Я прав? Я бы увеличил размер зазора или использовал меньший радиус конца –

+0

Спасибо, что исправил его. Вы хотите добавить это как ответ, чтобы я мог принять его? В противном случае я отвечу сам – Li1t

ответ

1

Разрыв грани (100), возможно, слишком мал. Вы генерируете (потенциально) 10000 ковшей для огранки в диапазонах (facet.end, деленный на facet.gap), который является довольно тяжелым.

Я мог бы увеличить размер зазора или использовать меньший радиус конца.

+0

Спасибо. Потребовав запрос к данным для магазина, подавляющее большинство продуктов в любом случае находилось под отметкой 100. Я решил резко уменьшить facet.end до 20, а также уменьшить facet.gap до 2. Конечный результат был 10 ведер с достаточно ровным и полезным сплитом. – Li1t