Я использую AdvancedDatabaseCrawler в качестве базы для моей страницы поиска. Я настроил это так, чтобы я мог искать то, что я хочу, и это очень быстро. Проблема заключается в том, что как только вы захотите что-то сделать с результатами поиска, требующими доступа к значениям полей, производительность поднимется до предела.
Основная часть результатов поиска в порядке, даже если из результатов поиска возвращено 1000 результатов, я показываю только 10 или 20 результатов на странице, что означает, что мне нужно только получить 10 или 20 элементов. Однако на боковой панели я перечисляю различные варианты фильтрации с числом или результатами, связанными с каждым параметром фильтрации (стиль eBay). Чтобы получить эти параметры фильтра, я выполняю поиск отношений на основе результатов поиска. Поскольку результаты поиска содержат только SkinnyItems, он должен вызывать GetItem () для каждого отдельного результата, чтобы получить фактический элемент, чтобы получить значение, по которому я фильтрую. Другими словами, он будет вызывать Database.GetItem (id) 1000 раз! Очевидно, что это не очень эффективно.
Я что-то здесь упускаю? Есть ли способ настроить поиск в Sitecore для получения пользовательских значений из поискового индекса? Если я могу искать значения в индексе, почему я не могу их также получить? Если я не могу, как еще я могу обработать результаты, не получая каждый отдельный элемент из базы данных?
Вот идея функциональности, которая мне нужна: http://cameras.shop.ebay.com.au/Digital-Cameras-/31388/i.html