Как настроить поиск по Sitecore для получения пользовательских значений из поискового индекса - PullRequest
0 голосов
/ 13 мая 2011

Я использую 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

Ответы [ 2 ]

1 голос
/ 19 мая 2011

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

В будущем мы, вероятно, рассмотрим использование такого продукта, как Apache Solr.

1 голос
/ 13 мая 2011

Клаус ответил на SDN: используйте фацетирование с Apache Solr или подобным.

http://sdn.sitecore.net/SDN5/Forum/ShowPost.aspx?PostID=35618

...